从 trie 构建火焰图

Construct flame graph from trie

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

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

不确定差异。但是您可以使用 FlameGraph tool.

在文件上绘制火焰图(如果您产生类似的输出,则可以绘制其他任何东西)

这里是这个工具的作者关于如何制作Flame graphs for file systems的话题。使用此工具,您只需执行以下命令即可获取图表。

./files.pl /Users | ./flamegraph.pl --hash --countname=bytes > out.svg

这是类似的工具 - duviz,它创建类似的图表,但对于 CLI 而言不是图像输出。优点 - 它写在 Python.