火焰图的学习与使用
Fri ,Jan 12 ,2018以nodejs 为例,学习火焰图相关。
node –perf-basic-prof-only-functions demo.js&
perf record -F 99 -p pgrep -n node
-g – sleep 30
perf script > nodestacks
./stackcollapse-perf.pl < ../nodestacks | ./flamegraph.pl –colors js > ../node-flamegraph.sv
1.如何生成火焰图
即如何实现数据可视化。 -- 数据,可视化。
函数本身提供符号的解析。(可视化)
由perf工具定时去抓取调用栈的数据。(数据源)
统计调用次数,生成火焰图。(可视化)
2.如何分析火焰图
示例如下:
在外层一共调用了 d, e, f 几个方法,其中d-b-a,e-b-a,f-c-a为调用链,
f 就是需要我们优化的“平顶山”,即占用了较多的cpu时间。
[d][ e ][ f ]
[ b ][ c ]
[ a ]
等到有具体的使用心得,再做进一步的更新。