Подтвердить что ты не робот

Что такое объекты системы в профиле прошивки хром javascript

Я профилирую приложение javascript с помощью инструментов Chrome dev.

Я вижу, что единственная область памяти, которая растет, - это общие объекты системы.

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

Я взглянул на распределение приложений, но со временем это сильно не меняется... Когда я использую функцию временной шкалы, куча вырастает более чем на 500 мб

начальный снимок "

моментальный снимок после многочасового использования

моментальный снимок после использования инструмента временной шкалы

4b9b3361

Ответ 1

В соответствии с JSHeapSnapshot.js реализация в Chromium, как указано в комментарии wOxxOm, сравнение для заданного расстояния node выполняется до 100000000 (distances[ordinal] >= WebInspector.HeapSnapshotCommon.baseSystemDistance, где WebInspector.HeapSnapshotCommon.baseSystemDistance = 100000000), и при прохождении размер накапливается в сегменте системы круговой диаграммы.

commit, который последний раз модифицирует это значение,

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

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

Что означает, что объекты системного пространства в куче javascript используются отладчиками и другими внутренними элементами в браузере (V8, WebKit и т.д.). Они находятся вне прямого управления script выделенными объектами кучи.

wOxxOm также упомянул, что это имя было кучей V8. То есть объекты, которые выделяет V8, находятся вне досягаемости исполняемого файла script.

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