通过火焰图分析 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 上)的主要内容,如果未能解决你的问题,请参考以下文章

火焰图之性能分析

如何在 CentOS 上生成 Node.js 火焰图?

linux利用火焰图进行性能分析

Linux程序性能分析和火焰图

perf + 火焰图分析程序性能

Linux性能分析专题屠龙宝刀绘制传说中的cpu火焰图