📅  最后修改于: 2023-12-03 15:33:09.839000             🧑  作者: Mango
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 进程的性能和健康状况。