Ответ 1
Это просто означает, что вы использовали console.log
. Таким образом, виртуальная машина хранит ссылку на ваши объекты, чтобы вы могли впоследствии их проверить. Вы можете либо прекратить использование консоли, либо просто очистить ее каждый раз, когда вы делаете снимок кучи.
Вы можете воспроизвести его со следующими шагами:
- Откройте новую вкладку
- Откройте консоль (очистите ее, если есть что-нибудь)
- Сделать снимок кучи 1
- Введите
console.log({ foo:'bar' })
в консоли - Сделать снимок кучи 2
- Очистить консоль
- Сделать снимок кучи 3
Затем просмотрите результаты:
-
Открыть представление сравнения между моментальным снимком 2 и снимком 1; вы найдете объект
{ foo: 'bar' }
-
Открыть представление сравнения между моментальным снимком 3 и снимком 2; вы обнаружите, что тот же самый объект теперь отображает дельту -1, то есть это был сбор мусора после того, как вы очистили консоль.
Наконец, вы также можете увидеть "Глобальные дескрипторы", а затем "Корни GC" в дорожках сохраняющегося дерева, рядом с _idToWrappedObject
и InjectedScript
. Я не уверен, как это относится к определению корней GC, но очистка консоли позволяет сборку мусора.