Node.js(v14.8.0) 笔记 01 v8

NodeJS v8
V8 介绍

v8引擎

  • v8.cachedDataVersionTag() v8.0.0

    返回: integer
    返回一个整数,表示从 V8 版本、命令行标志、以及检测到的 CPU 特性派生的版本标记。
    这对于判断 vm.Script 的 cachedData buffer 是否与此 V8 实例兼容非常有用。

  • v8.getHeapSpaceStatistics() v11.13.0

    返回: <Object[]>
    返回有关 V8 堆空间的统计信息,即组成 V8 堆的片段。
    由于统计信息是通过 V8 的 GetHeapSpaceStatistics 函数提供的,
    因此可以保证堆空间的排序以及堆空间的可用性,并且可以从一个 V8 版本更改为下一个版本。

    • space_name
    • space_size
    • space_used_size
    • space_available_size
    • physical_space_size
  • v8.getHeapSnapshot() v11.13.0

    返回: stream.Readable 包含 V8 堆快照的可读流。
    生成当前 V8 堆的快照,并返回可读流,该可读流可用于读取 JSON 序列化表示。
    此 JSON 流格式旨在与 Chrome DevTools 等工具一起使用。
    JSON 模式未记录且特定于V8引擎,并且可能从 V8 的一个版本更改为下一个版本。

  • v8.getHeapStatistics()

    返回: Object

    • total_heap_size
    • total_heap_size_executable
    • total_physical_size
    • total_available_size
    • used_heap_size
    • heap_size_limit
    • malloced_memory
    • peak_malloced_memory
    • does_zap_garbage
    • number_of_native_contexts
    • number_of_detached_contexts
      • does_zap_garbage 是一个 0/1 布尔值,表示是否启用了 –zap_code_space 选项。 这使得 V8 用位模式覆盖堆垃圾。
        RSS 占用空间(常驻内存集)会变得越来越大,因为它不断触及所有堆页面,这使得它们不太可能被操作系统交换出。
      • number_of_native_contexts native_context 的值是当前活动的顶层上下文的数量。
        随着时间的推移,此数字的增加表示内存泄漏。
      • number_of_detached_contexts detached_context 的值是已分离但尚未回收垃圾的上下文数。
        该数字不为零表示潜在的内存泄漏。
  • v8.getHeapCodeStatistics() v12.8.0

    返回: Object

    • code_and_metadata_size
    • bytecode_and_metadata_size
    • external_script_source_size
  • v8.setFlagsFromString(flags)

    flags : string
    v8.setFlagsFromString() 方法可用于以编程方式设置 V8 的命令行标志。
    应谨慎使用此方法。虚拟机启动后更改设置可能会导致不可预测的行为,包括崩溃和数据丢失,或者它可能根本就什么都不做。
    可以通过运行 node –v8-options 来检测可用于 Node.js 版本的 V8 选项。

  • v8.writeHeapSnapshot([filename]) v11.13.0

    • filename: string
      要保存 V8 堆快照的文件路径。
      如果未指定,则将会生成具有 ‘Heap-${yyyymmdd}-${hhmmss}-${pid}-${thread_id}.heapsnapshot’ 模式的文件名,
      其中 {pid} 将会是 Node.js 进程的 PID,
      {thread_id} 将会为 0(当从主 Node.js 线程调用 writeHeapSnapshot() 时)或工作线程的 id。
    • 返回: string 保存快照的文件名。