Задать вопрос
@khazzar

Из-за чего может возникать утечка общей (не js heap) памяти в Google Chrome?

Имеется небольшое приложение внутри браузера: информационная панель с d3.js графиками, под капотом backbone/underscore. Данные на информационной панели и графиках регулярно обновляются стандартными для backbone механизмами (обновление модели с каскадным обновлением представления). При этом, набор объектов backbone-объектов и конфигурации подписок на события не меняется.

При длительном пребывании в браузере (ну, или при достаточно частом обновлении данных, что по сути одно и то же) имеем утечку памяти. Причем:
1. утечка есть только в chrome, ff работает нормально.
2. на всех средствах мониторинга (task manager, developer tools/timeline) показывается, что размер javascript heap стабилен (стабильно заполняется объектами и очищается GC)
3. при этом, task manager показывает относительно стабильный рост размеров памяти процесса, выполняющего закладку с приложением. (относительно стабильный - с локальными отскоками, но тем не менее рост). растет как параметр memory, так и параметр private memory.
4. Размеры кэшей (статики, графики) по показаниям task manager не меняются.

Соответственно, вопросы:
1. Правильно ли я понимаю проблему? Действительно, можно ли считать, что эта утечка не в js-приложении, а как-то иначе получается?
2. Вообще, какие данные попадают в private memory? От чего зависит размер этого раздела?
3. Как с этим бороться? Куда рыть?
  • Вопрос задан
  • 2960 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
@HgeN
У меня последняя версия Хрома странно как-то работает. Порой некоторые дополнения (в основном это дополнения, которые часто обновляются: кнопки погоды и почты) отваливаются с треском или выжирают много памяти/cpu.

Замечено такое было пару раз под линуксовым билдом хрома. Перезапуск вроде как помогает.

Быть может это какой-то гугловский баг?
Ответ написан
Комментировать
@khazzar Автор вопроса
Версия chrome 37.0.x, сейчас пытаюсь обновиться до current-версии.

Из расширений у меня был только hangout включен (как оказалось - браузер используется для тестирования и расширений не предполагает). Расширения выключил, сейчас проверяю, изменится ли поведение.

Но проблема в том, что эту ошибку ловили клиенты. Сильно сомневаюсь, что у них был включен набор расширений, коррелирующий с моим
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы