分析node.js应用程序

1,071 阅读1分钟

使用 V8 profiler

常用命令

Profile 可以找到具体函数在整个程序中的执行时间和执行时间占比,从而分析到具体的代码问题,V8也提供了Profile日志导出命令。

  • prof 提供各个函数的执行占比:node --prof app.js。执行命令之后,会在该目录下产生一个*-v8.log的日志文件,处理V8 分析器的输出可以采用命令prof-process

  • cpu-prof 包括更加完整的调用栈,可读性更强。node --cpu-prof app.js

    Chrome自带了分析CPU Profile日志的工具。打开 Chrome -> 调出开发者工具(DevTools) -> 单击右上角三个点的按钮 -> More tools -> JavaScript Profiler -> Load,加载刚才生成的Cpuprofile文件。

实践

  1. deploy/entrypoint.sh 中, 添加--prof参数
REGION=${APP_REGION} DEPLOY_ENV=${ENV} node --prof ./server/dist/src/main.js
  1. 部署到test环境((本地调试: 先build再运行)。 部署成功后在kubernetes plaform的terminal查看, 应该有形式 isolate-0xnnnnnnnnnnnn-v8.log
node --prof-process isolate-0xnnnnnnnnnnnn-v8.log > processed.txt
cat processed.txt 

通过分析processed.txt中的summery,首先找到调用耗时的地方, 并对耗时的函数进行优化。

参考链接: