如何对 Node.js 做性能分析(Profiling)?

常用手段:

  1. perf_hooks:在代码内埋点测耗时
import { performance, PerformanceObserver } from 'perf_hooks'
const obs = new PerformanceObserver(list => console.log(list.getEntries()))
obs.observe({ entryTypes: ['measure'] })
performance.mark('start')
// ...业务...
performance.mark('end')
performance.measure('task', 'start', 'end')
  1. CPU Profiling:node --prof app.js 生成 *-v8.log,用 --prof-process 或 chrome://tracing 分析热点函数
  2. clinic.js:clinic doctor/bubbleprof/heapprofiler 一站式诊断
  3. async_hooks:追踪异步资源生命周期(调试异步泄漏)

生产环境建议采样(不一直开),避免 profiling 本身拖慢服务。

同分类其他题目