我正在使用堆快照来调试潜在的内存问题。如文档所示,对象以这种格式显示:
ObjectConstructorName@NumericIdentifier
这是一个对象ID。显示对象的地址没有意义,因为在垃圾回收期间会移动对象。这些对象ID是真实ID,这意味着它们在拍摄的多个快照中持久存在。这样可以精确比较堆状态。维护这些ID会增加GC周期的开销,但是仅在获取第一个堆快照之后才启动-如果不使用堆概要文件则不会产生开销。
我想知道标识符是否保证单调增加?给出:
ObjectConstructorName@10001
ObjectConstructorName@10002
我可以依靠第一个对象比第二个对象更早(在分配之前)吗?
如果是,那么保证有多强? (例如,它是否在构造函数名称之间保留?)
答案 0 :(得分:0)
只需跟进。与几位V8工程师交谈后: