Почему элементы, не связанные с корнем сборки мусора, являются частью моментального снимка кучи в Chrome?

Этот вывод моментального снимка кучи был сделан после нажатия корзины на вкладке «Временная шкала», чтобы принудительно выполнить сборку мусора.

ОбзорПредставление содержания

На левой панели я вижу, что размер моментального снимка кучи составляет 203 МБ.

Когда я нахожусь в сводном представлении, я вижу, что 203 МБ разбиты на различные конструкторы присутствующих объектов. Я заметил, что несколько элементов в списке с наибольшим сохраненным размером не имеют никакого расстояния от корня сборки мусора (просто показывает "").

Когда я переключаюсь на представление сдерживания, я вижу, что сохраненные размеры перечисленных там элементов составляют всего несколько МБ.

Если я форсирую сборку мусора перед созданием моментального снимка кучи, не должны ли все эти объекты, не связанные с корнем сборки мусора, больше не быть частью кучи?


person timehat    schedule 03.12.2014    source источник


Ответы (1)


Расстояние рассчитывается от объекта Window, а не от корня GC. Таким образом, прочерк означает, что ни один из удерживающих путей не проходит через окно.

По скриншоту сложно сказать, что удерживает объекты. Попробуйте выбрать интересующий вас объект и проверьте его путь сохранения в виде снизу.

Часто объекты сохраняются в куче из-за входа в консоль, которая хранит ссылку. Могут быть и другие случаи.

person alph    schedule 05.12.2014