Что Chrome делает с этим событием GC?

Я получаю следующую временную шкалу с очень простого сайта, над которым я работаю. Chrome говорит мне, что очищает 10 МБ через GC, но я не знаю, как это может быть! Любое понимание этого будет оценено.

Событие GC

Я думал, что SO позволит вам расширить изображение, но я думаю, что нет - вот полный размер: https://i.imgur.com/FZJiGlH.png


person Josh M.    schedule 25.03.2013    source источник


Ответы (1)


Это сайт, который мы можем проверить, или он внутренний? Я хотел бы заглянуть. Я наткнулся на приведенный ниже отрывок во время поиска на страницах Google Developers, Memory Анализ 101:

Размеры объекта

Память может удерживаться объектом двумя способами: непосредственно самим объектом и неявно, путем хранения ссылок на другие объекты и, таким образом, предотвращения их автоматического удаления сборщиком мусора (сокращенно GC).

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

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

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

Последний бит кажется потенциально вашей проблемой.

Исследование проблем с памятью

Если вы склонны, вы можете включить эту функцию Chrome, chrome --enable-memory-info, и заглянуть за кулисы, чтобы увидеть, на чем Chrome потенциально зависает.

Как только вы запустите Chrome с включенным профилированием памяти, вы получите доступ к двум новым свойствам:

window.performance.memory.totalJSHeapSize;  // currently used heap memory
window.performance.memory.usedJSHeapSize; // total heap memory

Эта функция подробно описана здесь.

person slm    schedule 13.04.2013
comment
Нет, рассматриваемый сайт не является общедоступным. Я просто не понимаю, почему так долго выгружается 10мб памяти... - person Josh M.; 14.04.2013