Из-за чего может возникать утечка общей (не 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. Как с этим бороться? Куда рыть?
У меня последняя версия Хрома странно как-то работает. Порой некоторые дополнения (в основном это дополнения, которые часто обновляются: кнопки погоды и почты) отваливаются с треском или выжирают много памяти/cpu.
Замечено такое было пару раз под линуксовым билдом хрома. Перезапуск вроде как помогает.
Версия chrome 37.0.x, сейчас пытаюсь обновиться до current-версии.
Из расширений у меня был только hangout включен (как оказалось - браузер используется для тестирования и расширений не предполагает). Расширения выключил, сейчас проверяю, изменится ли поведение.
Но проблема в том, что эту ошибку ловили клиенты. Сильно сомневаюсь, что у них был включен набор расширений, коррелирующий с моим