V8
该模块用于开放 Node.js 内建的 V8 引擎的事件和接口。这些接口由 V8 底层决定,所以无法保证绝对的稳定性。
getHeapStatistics()
返回一个带有下列属性的对象:
{
total_heap_size: 7326976,
total_heap_size_executable: 4194304,
total_physical_size: 7326976,
total_available_size: 1152656,
used_heap_size: 3476208,
heap_size_limit: 1535115264
}
getHeapSpaceStatistics()
返回和 V8 堆空间有关的统计数据,比如构成 V8 堆空间的段信息。由于堆空间的统计信息是由 V8 的 GetHeapSpaceStatistics
函数提供的,所以无法保证堆空间或者可用堆空间的顺序。
[
{
"space_name": "new_space",
"space_size": 2063872,
"space_used_size": 951112,
"space_available_size": 80824,
"physical_space_size": 2063872
},
{
"space_name": "old_space",
"space_size": 3090560,
"space_used_size": 2493792,
"space_available_size": 0,
"physical_space_size": 3090560
},
{
"space_name": "code_space",
"space_size": 1260160,
"space_used_size": 644256,
"space_available_size": 960,
"physical_space_size": 1260160
},
{
"space_name": "map_space",
"space_size": 1094160,
"space_used_size": 201608,
"space_available_size": 0,
"physical_space_size": 1094160
},
{
"space_name": "large_object_space",
"space_size": 0,
"space_used_size": 0,
"space_available_size": 1490980608,
"physical_space_size": 0
}
]
setFlagsFromString(string)
该方法用于添加额外的 V8 命令行标志。使用时需要注意,在 VM 启动后修改配置可能会发生不可预测的行为、崩溃和数据丢失,或者什么反应都没有。
通过 node --v8-options
命令可以查询当前 Node.js 环境中有哪些可用的 V8 options。此外,还可以参考非官方维护的一个 V8 options 列表,链接地址在这里 https://github.com/thlorenz/v8-flags/blob/master/flags-0.11.md。
// Print GC events to stdout for one minute.
const v8 = require('v8');
v8.setFlagsFromString('--trace_gc');
setTimeout(function() { v8.setFlagsFromString('--notrace_gc'); }, 60e3);