pounard / xtrace2fg
将 XDebug TRACE 文件转换为与 https://github.com/brendangregg/FlameGraph 兼容的输入
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
。
先决条件
- 您需要将 https://github.com/brendangregg/FlameGraph 安装在某个位置。
xdebug.trace_format
设置必须在 PHP 配置中为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