perf report -g
对于大型应用程序,不应因为过于冗长而将其转储到外部文件。Collected perf.data
(with -g
) 将在没有文件重定向的情况下使用交互式性能报告 TUI 界面工作。您可以禁用调用图报告以查找在perf record
没有-g
或的情况下花费最多时间的函数perf report --no-children
。
有 gprof2dot 脚本 ( https://github.com/jrfonseca/gprof2dot ) 可以将 lagre perf 报告调用图可视化为紧凑图片 (graph)。
svg/js 中还有 Brendan D. Gregg 的交互式FlameGraphs;他经常在演示文稿中指出,perf report -g
输出显示许多兆字节的原始报告转储为许多 A4 页面。perf 有使用说明:http ://www.brendangregg.com/FlameGraphs/cpuflamegraphs.html#perf:
# git clone https://github.com/brendangregg/FlameGraph # or download it from github
# cd FlameGraph
# perf record -F 99 -g -- ../command
# perf script | ./stackcollapse-perf.pl > out.perf-folded
# ./flamegraph.pl out.perf-folded > perf-kernel.svg
PS:你为什么要分析制作过程?尝试只选择一些测试和配置文件。使用较低的配置文件频率来获得较小的 perf.data 文件。:u
还禁用带有默认事件“周期”后缀的内核模式示例:perf record -F 99 -g -e cycles:u -- ../command