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);

results matching ""

    No results matching ""