6

Поиск утечки памяти в приложении Javascript, я пытаюсь использовать Profiler Chrome DevTools. Есть ли подробная информация, описывающая все записи, которые могут быть найдены в ней?Профилятор Chrome DevTools

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

  • (сценарий линия заканчивается) [] @ 89876
  • (переход массива) [] @ 748323
  • (свойства объекта) [] @ 77529
  • (карта дескрипторы) [] @ 13823
  • (код Информация перемещение) [] @ 722653
  • [] @ 748003
  • (объект элементы) [] @ 40917

Где я могу прочитать об этом?

ответ

10

В куче есть множество различных внутренних вещей v8, к которым невозможно получить доступ из javascript.

Как пример (конец строки сценария) - это массив, у которого есть смещения конца строки для скрипта. v8 нуждается в настройке точки останова.

Каждый раз, когда вы создаете объект, v8 делает много вещей и выделяет для них память. Смотрите видео Lars Bak о v8. http://www.youtube.com/watch?v=hWhMKalEicY

Если вам интересно в теме, есть количество слайдов и презентаций о внутренних элементах v8.

Простейший способ найти утечку - использовать профиль «Запись кучи». Он показывает вам график «реального времени» с выделениями.

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

первый синий бар не интересен, поскольку он может иметь распределения, которые были сделаны только один раз.

последний также не интересен, поскольку он может иметь распределения, которые будут выпущены при следующем повторении вашего сценария.

Таким образом, лучшим кандидатом является полоска посередине. http://www.youtube.com/watch?v=x9Jlu_h_Lyw

Самые интересные предметы - это объекты, созданные вашим скриптом.

Смежные вопросы