以适合火焰图格式输出的统计剖面仪
flamegraph的Python项目详细描述
一个简单的统计分析器,其输出格式适合于FlameGraph。
安装:
只需运行:
pip install git+https://github.com/evanhempel/python-flamegraph.git
用法:
在探查器下运行脚本:
python -m flamegraph -o perf.log myscript.py --your-script args here
对输出运行brendan gregg的FlameGraph工具:
flamegraph.pl --title "MyScript CPU" perf.log > perf.svg
享受输出:
筛选
有时您可能希望排除方法 (例如,在服务器中,等待新请求的方法) 或者您可能只想分析代码的一个子集 (对性能至关重要的特定方法及其子方法)。
过滤可以通过将python正则表达式传递给 -f或--filter命令行选项 这将限制只输出匹配的行。 对整行进行筛选,以便可以通过 函数名、线程名、两者,甚至由 更复杂的过滤器,如函数abc调用def(ABC.*DEF)。
或者,由于输出是stackframes,每一行都有一个单独的输出, 这只需使用一个简单的grep过滤器即可完成。
Exclude: grep -v waiting_method perf.log > removed_waiting.log Include: grep function_name perf.log > filtered.log
然后对过滤后的文件运行flamegraph.pl脚本。
yCantawebapp pdf导出的完整配置文件输出。大多数时间是 在等待状态和图表中使用不是很有帮助。
已筛选的yCantawebapp pdf导出的配置文件输出。过滤在 pdf格式函数,因此已排除等待状态下花费的时间,并且 图表现在有用了。