pounard/xtrace2fg

将 XDebug TRACE 文件转换为与 https://github.com/brendangregg/FlameGraph 兼容的输入

安装: 17

依赖项: 0

建议者: 0

安全性: 0

星标: 3

关注者: 2

分支: 0

开放问题: 0

类型:项目

2.0.0 2021-07-21 12:18 UTC

This package is auto-updated.

Last update: 2024-09-22 23:18:08 UTC


README

从一个给定的 Xdebug 生成的跟踪文件中,输出适合 https://github.com/brendangregg/FlameGraph 火焰图生成器的文本。

这需要将 xdebug.trace_format 设置为 1

先决条件

用法

这将输出一个跟踪文件,其中每个函数使用相对于时间成本的代价

xtrace2fg TRACE_FILE | flamegraph.pl > OUTPUT.svg

这将输出一个跟踪文件,其中每个函数使用相对于内存成本的代价

xtrace2fg memory TRACE_FILE | flamegraph.pl --color=mem > OUTPUT.svg

其中

  • FILE 是 Xdebug TRACE 文件(使用 xdebug.trace_format=1 生成)

  • OUTPUT.svg 是输出文件名

您可以将 SVG 输出文件加载到任何最近的浏览器中,以利用火焰图中的浏览功能。

警告:内存支持是实验性的,并且并不像您预期的那样工作,因为它会将所有实际释放内存的函数重置为 0。您会看到消耗内存但不释放它的函数,但这并不一定意味着它是泄漏,因为它可能已经在其他地方被垃圾回收了。

生成的样本跟踪文件

XDEBUG_MODE=trace XDEBUG_TRIGGER=1 php -d'xdebug.trace_format=1' -f samples/test.php
cp /tmp/trace.XXXXXX.xt samples/test.xt

./xtrace2fg samples/test.xt > samples/test.cost.output
cat samples/test.cost.output | ~/FlameGraph/flamegraph.pl > samples/test.cost.svg

./xtrace2fg memory samples/test.xt > samples/test.memory.output
cat samples/test.memory.output | ~/FlameGraph/flamegraph.pl --color=mem > samples/test.memory.svg