При профилировании Javascript в Chrome, как я узнаю, что я справился с утечками памяти? - PullRequest
19 голосов
/ 17 апреля 2011

Я работаю над игрой для HTML 5, используя тег canvas, и я собрал достаточно кодовой базы для удовлетворения моих требований. Я также хочу убедиться, что я скрываю все утечки памяти.

У меня есть сомнения, что я делаю это правильно, потому что отклики, которые я получаю от диспетчера задач и инструментов профилирования Chrome, показывают, что моя очистка в конечном итоге не имеет никакого эффекта.

Вот изображение, чтобы вы могли видеть, что я имею в виду:

enter image description here

Итак, как вы можете видеть, когда я выполняю очистку, использование памяти просто зависает и не падает. Это утечка памяти?

Когда я запустил свою веб-страницу в Профилировщике и проверил кучу до и после очистки, она, по-видимому, удаляет все ссылки на мои объекты (и они исчезают), но мое использование уменьшается только на несколько килобайт, оставляя около 1,3 МБ массивы, строки и другие объекты позади. Все это невозможно уловить или что-то не так?

Спасибо.

Ответы [ 3 ]

3 голосов
/ 21 января 2012

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

Нажмите и посмотрите, не очистит ли он остальную часть памяти.

Возможно, Chrome / V8 просто не считает ситуацию с памятью достаточно плохой, чтобы запустить сборку мусора.

1 голос
/ 14 февраля 2013

Вы можете сравнить два снимка кучи и увидеть дельту. Вы также можете непосредственно посмотреть на снимок памяти: https://developers.google.com/chrome-developer-tools/docs/heap-profiling-comparison?hl=pt-PT

1 голос
/ 22 января 2012

Попробуйте chrome://memory-redirect/ (или about:memory, оба идут в одно и то же место).Он покажет вам точное количество памяти, используемой каждой вкладкой / etc, а также память, используемую тегами / etc в IE, Opera, Firefox и т.д., если они открыты одновременно.Необработанные числа должны быть немного более полезными, чем просто график при профилировании использования памяти для потенциальных утечек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...