Node.js性能分析通过火焰图(在Mac上)
火焰图是可视化的分析软件,可以快速而准确地识别最频繁的代码path – Brendan Gregg on flame graph
在Xcode Instruments 上使用node --perf-basic-prof
( 在Mac上 )应该有助于生成用于性能分析的火焰图。 按照这个指南 ,这很容易:
-
perf-<pid>.map
node.js 0.12使用node --perf-basic-prof app.js
生成perf-<pid>.map
node --perf-basic-prof app.js
- 使用Xcode工具logging堆栈时间分析器( 导出为
profile.csv
) - 用Brendan Gregg perl工具生成火焰图,使用
./stackcollapse-instruments.pl profile.csv | ./flamegraph.pl > graph.svg
./stackcollapse-instruments.pl profile.csv | ./flamegraph.pl > graph.svg
可悲的是,生成的火焰图不会从perf-<pid>.map
受益,因此会留下方法地址而不是名称( 1cfc9a09b880
而不是LazyCompile:~ /node_modules/benchmark/benchmark.js:1870
)。
有没有办法将映射/符号给Xcode仪器,使其生成一个csv文件的方法名称( 这是行不通的 )?
这可以通过节点火焰图模块的用户来完成。
PS。 拉请求提供添加选项到npm命令行工具允许inputflamegraph -t instruments -f profile.csv -m perf-4499.map -o flamegraph.svg