v8 :: Persistent MarkIndependent,这个方法究竟做了什么?

时间:2013-05-24 09:03:33

标签: c++ v8 embedded-v8

以下是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);

1 个答案:

答案 0 :(得分:1)

来自post on v8-users

  

我认为'独立'的确切含义自那以后已经转移了一点   3.24。以下是我对最近版本的V8中它的作用的理解:

     
      
  1. 它避免了对象组处理的成本。我们不在node.js中使用对象组,但我认为chrome对DOM对象有用;如果一个   集合中的DOM对象是活的,然后逻辑上都是。   定义一个对象组可以让垃圾收集器获取快捷方式   每个句柄的一些处理开销的成本。

  2.   
  3. 在小型垃圾收集(清除)期间可以回收独立句柄。依赖句柄仅在回收期间回收   主要收藏品因此通常会保持更长时间   不良;我认为他们只有一旦获得收藏资格   他们指出的对象已从新空间升级(   幼儿园)到旧空间。

  4.