Node.js性能分析通过火焰图(在Mac上)

火焰图是可视化的分析软件,可以快速而准确地识别最频繁的代码path – Brendan Gregg on flame graph

在Xcode Instruments 使用node --perf-basic-prof在Mac上 )应该有助于生成用于性能分析的火焰图。 按照这个指南 ,这很容易:

  1. perf-<pid>.map node.js 0.12使用node --perf-basic-prof app.js生成perf-<pid>.map node --perf-basic-prof app.js
  2. 使用Xcode工具logging堆栈时间分析器( 导出为profile.csv
  3. 用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