从特里构建火焰图

Gya*_*ngh 5 python algorithm trie flamegraph

我在定期生成的特里中有一些统计数据。我想根据两次尝试之间的差异生成火焰图。我怎么做?

t = pygtrie.StringTrie(separator=os.path.sep)

for dirpath, unused_dirnames, filenames in os.walk(ROOT_DIR):
    for filename in filenames:
        filename = os.path.join(dirpath, filename)
        try:
            filestat = os.stat(filename)
        except OSError:
            continue
        if stat.S_IFMT(filestat.st_mode) == stat.S_IFREG:
            t[filename] = filestat.st_size
Run Code Online (Sandbox Code Playgroud)

wow*_*in2 1

不确定差异。但是您可以使用FlameGraph 工具在文件(或其他任何东西,如果您生成类似的输出)上绘制火焰图。

这是该工具的作者关于如何为文件系统制作火焰图的主题。使用此工具,您只需执行以下命令即可获取图表。

./files.pl /Users | ./flamegraph.pl --hash --countname=bytes > out.svg
Run Code Online (Sandbox Code Playgroud)

这是类似的工具 - duviz,它创建类似的图表,但对于 CLI 来说不是作为图像输出。优点 - 它是用 Python 编写的。