nodejs性能分析

方案1 v8-profiler

1. v8-profiler 添加node性能收集埋点

2. Apachebench压力测试

ab -t 300-c 10-p post.txt -T "application/json" http://localhost:8008/xxx

3. v8-profiler 收集得到 cpuProfile

4. 用chrome的开发者工具 More-tools -> JavaScript Profiler -> Load,读取cpuProfile,查看火焰图

5. 或者使用speedscope根据cupProfile生成火焰图,支持leftHeavy模式,直接将CPU占用率最高的排在最左边,一目了然,快速的可以定位到问题。

方案2 chrome inspect

1. inspect模式启动node程序

node --inspect ./app.js

2. inspect模式启动chrome

chrome://inspect

3. Apachebench压力测试

ab -n 1000 -c 20 http://localhost:3000/

4. 生成profile文件

完成压测之后停止服务,选择save保存文件

5. 使用speedscope根据cupProfile生成火焰图

npm install -g speedscope

speedscope CPU-xxxx.cpuprofile

参考: speedscope + node inspect 分析node应用调用

Node使用火焰图优化CPU爆涨