v8 :: Persistent MarkIndependent, что именно делает этот метод?

Ниже приведен комментарий к 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);

12

Решение

Из пост на v8-пользователи:

Я думаю, что точное значение слова «независимый» немного изменилось с тех пор, как
3,24. Вот мое понимание того, что он делает в последних версиях V8:

  1. Это позволяет избежать затрат на обработку групп объектов. Мы не используем группы объектов в node.js, но я думаю, что хром делает для объектов DOM; если один
    Объект DOM в коллекции жив, то по логике все есть.
    Определение группы объектов позволяет сборщику мусора ярлык на
    стоимость некоторых накладных расходов на обработку для отдельной ручки.

  2. Независимые дескрипторы могут быть восстановлены во время незначительных сборок мусора (мусоров). Зависимые ручки исправляются только во время
    основные коллекции и, таким образом, дольше остаются в живых, что обычно
    нежелательно; Я думаю, что они получают право на сбор только после
    объект, на который они указывают, был повышен из нового пространства (
    ясли) в старое пространство.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]