以下是v8代码评论,我不太明白解释。
/**
* Marks the reference to this object independent. Garbage collector
* is free to ignore any object groups containing this object.
* Weak callback for an independent handle should not
* assume that it will be preceded by a global GC prologue callback
* or followed by a global GC epilogue callback.
*/
inline void MarkIndependent();
inline void MarkIndependent(Isolate* isolate);
答案 0 :(得分:1)
我认为'独立'的确切含义自那以后已经转移了一点 3.24。以下是我对最近版本的V8中它的作用的理解:
它避免了对象组处理的成本。我们不在node.js中使用对象组,但我认为chrome对DOM对象有用;如果一个 集合中的DOM对象是活的,然后逻辑上都是。 定义一个对象组可以让垃圾收集器获取快捷方式 每个句柄的一些处理开销的成本。
- 醇>
在小型垃圾收集(清除)期间可以回收独立句柄。依赖句柄仅在回收期间回收 主要收藏品因此通常会保持更长时间 不良;我认为他们只有一旦获得收藏资格 他们指出的对象已从新空间升级( 幼儿园)到旧空间。