Chrome V8内存管理中getHeapSpaceStatistics返回的read_only_space、map_space含义是什么
V8 堆空间字段含义说明
你调用的是 Node.js 内置 v8 模块的堆空间统计接口,对应代码如下:
const v8 = require('v8'); console.log(v8.getHeapSpaceStatistics())
该接口会返回 V8 引擎堆内存中各个独立分区的运行时统计数据,你提到的两个字段含义如下:
- read_only_space(只读空间):用于存储 V8 运行全程都不会被修改的对象,比如内置对象的元数据、底层内置函数的定义等。垃圾回收器不会扫描这块空间,也不会移动内部存储的对象,且该空间的内容可以直接共享给多个 V8 实例(Isolate)使用,降低整体内存开销。
- map_space(Map 空间/隐藏类空间):V8 中的 Map 就是常说的隐藏类,专门用来记录 JS 对象的属性布局、属性偏移量等元数据,用来优化动态类型语言的属性访问速度。这块空间专门存储所有对象的 Map 结构,内部存储的对象都是固定大小,垃圾回收的扫描效率很高。
内容的提问来源于stack exchange,提问作者Ayanami
相关产品推荐
相关产品推荐

