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

Когда профилирование Javascript в Chrome, как я знаю, я справился с утечками памяти?

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

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

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

enter image description here

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

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

Спасибо.

4b9b3361

Ответ 1

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

Убейте его и посмотрите, очищает ли он оставшуюся память.

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

Ответ 2

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