通过火焰图分析 Node.js 性能(Mac 上)
Posted
技术标签:
【中文标题】通过火焰图分析 Node.js 性能(Mac 上)【英文标题】:Node.js performance's analysis through flame graph (on Mac) 【发布时间】:2015-06-05 10:58:00 【问题描述】:火焰图是分析软件的可视化,允许 快速准确地识别最常见的代码路径 — Brendan Gregg on flame graph
将node --perf-basic-prof
与 Xcode Instruments 一起使用(在 Mac 上)应该有助于生成用于性能分析的火焰图。关注this guide,就很简单了:
-
使用
node --perf-basic-prof app.js
使node.js 0.12 生成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)?
【问题讨论】:
【参考方案1】:这可以通过node flamegraph module的用户界面来完成。
ps。 a pull request 提供向 npm 命令行工具添加选项以允许输入 flamegraph -t instruments -f profile.csv -m perf-4499.map -o flamegraph.svg
【讨论】:
以上是关于通过火焰图分析 Node.js 性能(Mac 上)的主要内容,如果未能解决你的问题,请参考以下文章