Node.js 火焰图性能分析(Mac)
Node.js performance's analysis through flame graph (on Mac)
Flame graphs are a visualization of profiled software, allowing the
most frequent code-paths to be identified quickly and accurately — Brendan Gregg on flame graph
使用 node --perf-basic-prof
和 Xcode 仪器( 在 Mac 上)应该有助于生成用于性能分析的火焰图。跟随 this guide,这很容易:
- made node.js 0.12 使用
node --perf-basic-prof app.js
生成 perf-<pid>.map
- 使用 Xcode 仪器时间分析器记录堆栈(导出为
profile.csv
)
- 使用Brendan Gregg perl tools生成火焰图,使用
./stackcollapse-instruments.pl profile.csv | ./flamegraph.pl > graph.svg
遗憾的是,生成的火焰图无法从 perf-<pid>.map
中获益,因此留下方法地址而不是它们的名称(1cfc9a09b880
而不是 LazyCompile:~ /node_modules/benchmark/benchmark.js:1870
)。
有什么方法可以将映射/符号提供给 Xcode 仪器,使其生成带有方法名称的 csv 文件 (this doesn't work) ?
这可以通过 node flamegraph module 的 ui 来完成。
ps。 a pull request 提供向 npm 命令行工具添加选项以允许键入 flamegraph -t instruments -f profile.csv -m perf-4499.map -o flamegraph.svg
Flame graphs are a visualization of profiled software, allowing the most frequent code-paths to be identified quickly and accurately — Brendan Gregg on flame graph
使用 node --perf-basic-prof
和 Xcode 仪器( 在 Mac 上)应该有助于生成用于性能分析的火焰图。跟随 this guide,这很容易:
- made node.js 0.12 使用
node --perf-basic-prof app.js
生成 - 使用 Xcode 仪器时间分析器记录堆栈(导出为
profile.csv
) - 使用Brendan Gregg perl tools生成火焰图,使用
./stackcollapse-instruments.pl profile.csv | ./flamegraph.pl > graph.svg
perf-<pid>.map
遗憾的是,生成的火焰图无法从 perf-<pid>.map
中获益,因此留下方法地址而不是它们的名称(1cfc9a09b880
而不是 LazyCompile:~ /node_modules/benchmark/benchmark.js:1870
)。
有什么方法可以将映射/符号提供给 Xcode 仪器,使其生成带有方法名称的 csv 文件 (this doesn't work) ?
这可以通过 node flamegraph module 的 ui 来完成。
ps。 a pull request 提供向 npm 命令行工具添加选项以允许键入 flamegraph -t instruments -f profile.csv -m perf-4499.map -o flamegraph.svg