如何在 Node.js 应用中查看 GC 日志?

介绍几种方法在 Node.js 应用中查看和分析 GC 日志,帮助开发者进行内存优化。

Node.js 简单 GC 性能优化 GC日志

在Node.js应用中查看GC日志可通过以下两种方式实现:

1. 启动时添加Trace-GC参数

通过在启动命令添加--trace-gc参数输出精简的GC事件信息:

node --trace-gc your-app.js

或结合--gc参数周期性输出GC统计报告:

node --gc your-app.js

日志会直接输出到控制台,持续跟踪GC频率和时间开销。

2. 通过Node.js性能平台动态分析

若应用部署在类似阿里云Node.js性能平台的环境:

  1. 进入目标应用实例详情页面,选中进程
  2. 点击GC Trace启动数据抓取(默认3分钟)
  3. 完成后在文件页面生成日志文件
  4. 点击转储上传日志后选择分析

平台自动生成可视化报告,包含核心指标:

  • GC总次数和触发类型占比
  • 每次GC的内存回收效率及耗时
  • Full GC暂停时间分布统计
    适合线上问题定位,无需变更启动命令即可回溯分析。

通过系统命令查看实时统计:

node -e 'setInterval(()=>{global.gc?console.log(process.memoryUsage()):null},1000)' 

适用于排查内存泄漏时结合v8.setFlagsFromString('--expose-gc')主动触发的场景。