Измерение памяти Chrome теперь практически не меняется при длительных испытаниях - PullRequest
0 голосов
/ 04 октября 2018

Чтобы проверить наше веб-приложение на предмет утечек памяти, я запускаю компьютер, который выполняет следующее:

  • он запускает автоматические сквозные тесты почти (почти) всего приложения в Chrome
  • после каждого блока тестов, он переходит в состояние веб-приложения, где почти ничего не происходит
  • запускает gc(); для сборки мусора
  • сохраняет totalJSHeapSizeи usedJSHeapSize в файл
  • выводит результаты каждого теста на график

Таким образом, мы можем видеть, насколько увеличивается объем памяти и какиепроблемные части нашего приложения: в какой-то момент память увеличивается, в какой-то момент она уменьшается.До вчерашнего дня это выглядело так:

enter image description here Ярко-красный (верхняя строка): totalJSHeapSize, светло-красный (нижняя строка): usedJSHeapSize

Вчера я обновилChrome до версии 69. И теперь диаграмма выглядит совсем иначе:

enter image description here Начальный и конечный объем используемой памяти (usedJSHeapSize) практически одинаков.Но, как вы можете ясно видеть, то, как оно меняется в течение теста (около 1,5 ч), совсем другое.

Мои вопросы сейчас:

  • Этоизменение в реальности или в измерении?Т.е. Chrome изменил обработку памяти?Или просто как он выводит значения памяти через totalJSHeapSize и usedJSHeapSize?
  • Что касается утечек памяти, это хорошая или плохая новость для меня?Как: раньше у меня были десятки мест, где память увеличивается, сейчас у меня всего три.Это правда?Или утечки памяти в теперь плоских областях все еще там и скрыты?

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

Некоторая дополнительная информация:

  • Виртуальная машина работает под управлением KUbuntu 18.04
  • Это приложение для одной веб-страницы, выполненное с AngularJS 1.6

  • Результатизмерение памяти достаточно стабильно - как до, так и после обновления Chrome

РЕДАКТИРОВАТЬ: Похоже, это была ошибка Chrome версии 69. По крайней мере, с обновление до Chrome 70 , это странное поведение исчезло, и все выглядит почти как прежде.

1 Ответ

0 голосов
/ 04 октября 2018

Не думаю, что вам стоит беспокоиться об этом.Это может произойти из-за менеджера памяти, используемого внутри Chrome.Вы не упомянули версию своего первого графа памяти, возможно, что менеджер памяти, используемый между этими двумя версиями, отличается.Chrome использовал TCMalloc, который берет большой кусок памяти из ОС и управляет им, как только в TCMalloc возникает нехватка памяти, он снова запрашивает большой кусок памяти у ОС и начинает управлять им.Таким образом, последующий график, который вы видите, имеет меньше взлетов и падений (но больше, чем предыдущий) из-за этого.Надеюсь, что он ответил на ваш запрос.

Как вы упомянули, что

Результат измерения памяти достаточно стабилен - как до, так и после обновления Chrome

Вам не нужно действительно беспокоиться об этом, способ, которым ранее chrome выделял память, и то, как это происходит с новой версией, отличается (возможно, другой менеджер памяти), вот и все.

...