what

使用 nodejs 自带命令参数 prof 以及 chrome dev tool 和 ab 工具进行 nodejs 项目性能分析。

why

好久没写博客了,今天看到一个关于 nodejs 性能分析的视频,特此记录一下。

刚好工作中有用到 nodejs 写项目,也在尝试自己写一个基于 nodejs 的 restful 框架。

how

nodejs 自带的性能分析

首先 node 是自带性能分析的,使用以下命令

node --prof xxx.js

增加 prof 参数会在与应用程序的本地运行相同的目录中生成了一个刻度文件。形式为 isolate-0xnnnnnnnnnnnn-v8.log (其中 n 为数字)。

如果是一个 web 项目,可以使用 ab 工具进行压力测试,以增加更多分析数据。例如:

ab -c50 -t10 http://127.0.0.1:8080/xxxx

nodejs 会自动把进程信息存储在 isolate-0xnnnnnnnnnnnn-v8.log 内,该文件根本无法阅读,需要使用 nodejs 的刻度处理器,使用 --prof-process 参数。

node --prof-process isolate-0xnnnnnnnnnnnn-v8.log > analysis.txt

查看 analysis.txt 就可以看到更适合阅读的格式,

查看关于 prof更多详解

使用 chrome 调试 nodejs 项目

自带的分析工具,还是不够直观,而且操作不够方便,nodejs 本身是基于 v8 引擎开发的,所以我们可以直接使用 chrome 的开发工具进行调试项目。

node --inspect-brk xxx.js

使用 inspect-brk 参数可以启动调试,启动后会开启一个 wobsocket 服务。
我们可以在 chrome 浏览器地址栏中输入 chrome://inspect 进入开发工具,可以发现 target 下有一个 inspect 按钮,点击就可以进入调试模式了。接下来就和前端调试一样了,可以在 dev-tool 中看到源码、记录快照以及打印结果。

查看关于 inspect-brk更多详解

总结

本文只简单记录,不够完善,以后有空再来深入了解。

(完)


作者: Kavience 本文链接: http://www.kavience.com/frontend/nodejs-performance-analysis.html 转载请注明:《Nodejs性能分析》转自 http://www.kavience.com/frontend/nodejs-performance-analysis.html,原作者:Kavience 版权声明: 自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)