dollar
@dollar
Делай добро и бросай его в воду.

Память расширения растёт. Куда копать?

При этом память JavaScript (то есть DOM и переменных, включая замыкания) всегда не выше 11МБ.
Вот пример диспетчера задач Google Chrome
5cc0057a462c8935166481.png

Вкладка Memory
5cc005f4808aa175263186.png

А вот разница в снапшотах, между которыми прошло более 10 часов
5cc005bebb556594081839.png

При этом общая занимаемая память расширения стабильно растёт на 50МБ в час и более.

Справедливости ради должен сказать, что интенсивно используется ajax. Но не понятно, как это влияет, как исправить, куда смотреть, и в нём ли вообще дело.

Закрытие разных вкладок ничего не даёт. Да и не может давать. Ведь вкладки общаются с расширением через сообщения, а это по сути json-строка, которая не может содержать ни функций, ни ссылок, ничего такого. Да и выше показано, что не в JS heap дело вообще.

Если расширение перезапустить (обновить, перезагрузить, выключить-включить) без перезагрузки браузера, то память расширения сбрасывается до 25МБ и снова начинает постепенно расти.

Может ли быть проблема в самом Google Chrome, в его багах?
  • Вопрос задан
  • 441 просмотр
Решения вопроса 1
dollar
@dollar Автор вопроса
Делай добро и бросай его в воду.
А ларчик просто открывался.
Решение

С расширением всё нормально. Но самом деле потребление прыгает, но оно всегда не выше 50МБ.
Проблема была в том, что инструменты разработчика кэшируют всё, что только можно - вывод консоли, сетевые соединения, тела принятых ответов с сервера через ajax и прочее. И вот эти тела и составляли основную как бы "утечку" памяти.
То есть нужно закрыть консоль, перезагрузить расширение, - и нет проблем с якобы утечкой.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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