📜  Node.js process.report 属性(1)

📅  最后修改于: 2023-12-03 15:17:55.262000             🧑  作者: Mango

Node.js process.report 属性

在 Node.js v12.0.0 中,引入了一个新的属性 process.report。该属性可以生成一个包含 Node.js 进程信息的报告,用于分析崩溃、内存泄漏等问题。

使用示例

在代码中添加以下行,即可生成报告文件:

process.report.writeReport();

生成的报告文件会保存在默认的报告目录(在 Windows 上为 %LOCALAPPDATA%/Temp,在 Linux 上为 /var/tmp)下,并以 report.xxxxxx.json 的格式命名。

报告包含的信息

报告文件包含了以下信息:

  • 进程信息(PID、命令行参数、操作系统版本等)
  • 信号和异常信息
  • JavaScript 堆内存使用情况
  • 堆转储文件路径
  • CPU 和内存使用情况
  • 所有文件的打开状态
  • 事件循环信息
  • 内存使用情况
  • I/O 构建信息
查看报告

可以使用 report.createReadStream() 方法读取报告文件流:

const r = process.report.createReadStream();
r.pipe(fs.createWriteStream('output.json'));

也可以使用 Chrome 开发者工具读取报告:

  1. 在命令行启动 Node.js:
node --inspect-brk app.js
  1. 在 Chrome 中打开 DevTools,并切换到“Debugger”标签页。
  2. 点击“Open dedicated DevTools for Node”按钮,打开 Node.js DevTools。
  3. 在 DevTools 中,选择“Memory”标签页,然后选择“Load Report”菜单,选择报告文件即可查看。
进一步阅读