近日发现项目的koa经常出现卡顿情况,上网找了很多监控node的方法,但是在内网很多js库没法完整的被下载和使用,看node官方文档之后,发现node在v4.4之后可以输出性能监测文件,特此在这里记录一下,,,
详细见官方文档 易于分析的 Node.js 应用程序https://mp.csdn.net/mp_blog/creation/editor
1.首先在启动项目文件index.js时候(命令node index.js)在node后面加上--prof
node --prof index.js
这一步和平常启动项目一样, 只是多了prof,这样就会在项目目录下生成一个 isolate-xxxxxx.log
的文件(如果没有设置路径的话,默认是项目目录下)
2.项目运行一段时间后,停止运行(一般ctrl+c),将生成的 isolate-xxxxxx.log 转换成易于阅读的.txt文件,输入命令
node --prof-process isolate-xxxxxxxx-v8.log > processed.txt
注意:这里要停止运行,才能对生成的文件进行下一步操作,不然系统会提示你文件正在被使用或者正在更改等错误
命令中isolate-xxxxx-v8.log是刚刚运行生成的文件每次文件名都会不一样 ,后面processde.txt这里自定义文件名。
生成的文件也是在项目目录下(如果没有设置路径的话),然后用VScode打开就可以,vscode会自动排版
这个文件基本上可以看出项目运行时候的各个函数,模块的运行情况等,有助于排查
3 其他
3.1 火焰图
有一个可以将.log文件生成火焰图
3.2 node还提供其他生成的文件,例如cpuprofile或者是其他(内存使用情况等等)
这里介绍一下cpuprofile,其他类似
在启动项目的时候
node --cpu-prof index.js
项目停止后,会生成一个.cpuprofile结尾的文件
这个文件可以直接在chrome浏览器查阅,当然你也可以直接在Chrome断点调试(详细看其他文章,这里就不详细写了)
f12进入开发者工具》看选项卡有无JavaScript profiler(就是console、application那一栏),如果没有的话就在更多工具那里找》点击后,会有一个start 和 load 》点击load,选需要加载的文件(.cpuprofile结尾的文件)