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

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

Node.js process.report.compact 属性

Node.js 的 process.report.compact 属性提供了一种调试工具,它可以生成一个精简的 JSON 报告,其中包含对 Node.js 进程的详细信息。这个属性可以在 process 对象上访问,并且需要使用 --report-compact 命令行选项才能使用。本文将介绍如何使用此属性来生成报告并解读报告中的信息。

生成报告

为了生成一个 process.report.compact JSON 报告,需要在启动 Node.js 进程时使用 --report-compact 命令行选项。可以通过下面的命令来运行一个简单的 Node.js 应用程序,并生成报告:

node --report-compact app.js

为了获得更准确的报告,可以在生成报告之前使用下面的命令来强制 Node.js 进程执行一次垃圾回收:

node --report-compact --inspect app.js

这个命令将用 Chrome DevTools 打开一个新的页面,允许您使用内置的工具进行调试。

在 Node.js 进程完成运行后,您将在运行目录中找到一个名为 isolate-0x700003c29000-v8.log 的文件。这个文件包含了一个包含有关 Node.js 进程的详细信息的 JSON 报告。

报告信息

process.report.compact JSON 报告包含了许多有关 Node.js 进程的信息,包括进程的内存占用量、垃圾回收统计信息、CPU 利用率、事件循环延迟等。以下是报告中包含的一些常见字段的快速参考:

{
  "timestamp": 1234567890000,
  "version": "v8",
  "gc": {
    "totalHeapSize": 123456789,
    "usedHeapSize": 123456789,
    "totalPhysicalSize": 123456789,
    "totalAvailableSize": 123456789,
    "mallocedMemory": 123456789,
    "peakMallocedMemory": 123456789,
    "numberOfNativeContexts": 12345,
    "numberOfDetachedContexts": 12345
  },
  "cpu": {
    "user": 1234567890000,
    "system": 1234567890000
  },
  "event-loop": {
    "count": 12345,
    "max": 1234,
    "min": 1234,
    "mean": 1234,
    "stddev": 1234,
    "p50": 1234,
    "p90": 1234,
    "p95": 1234,
    "p99": 1234
  }
}

以上只是一个简单的示例,报告中还包含了大量其他信息,包括TCP连接数、文件打开数、HTTP请求数、SSL连接数、UDP连接数等。使用这些信息,可以编写定制化的监控程序,以实时监视和诊断 Node.js 进程的性能和健康状况。

结论

Node.js process.report.compact 属性提供了一个强大的调试工具,可以生成关于 Node.js 进程的详细信息的精简的 JSON 报告。此属性可以使用 --report-compact 命令行选项启用,并且可以用于监视和调试 Node.js 进程的性能和健康状况。