Чтобы проверить наше веб-приложение на предмет утечек памяти, я запускаю компьютер, который выполняет следующее:
- он запускает автоматические сквозные тесты почти (почти) всего приложения в Chrome
- после каждого блока тестов, он переходит в состояние веб-приложения, где почти ничего не происходит
- запускает
gc();
для сборки мусора - сохраняет
totalJSHeapSize
и usedJSHeapSize
в файл - выводит результаты каждого теста на график
Таким образом, мы можем видеть, насколько увеличивается объем памяти и какиепроблемные части нашего приложения: в какой-то момент память увеличивается, в какой-то момент она уменьшается.До вчерашнего дня это выглядело так:
Ярко-красный (верхняя строка): totalJSHeapSize, светло-красный (нижняя строка): usedJSHeapSize
Вчера я обновилChrome до версии 69. И теперь диаграмма выглядит совсем иначе:
Начальный и конечный объем используемой памяти (usedJSHeapSize) практически одинаков.Но, как вы можете ясно видеть, то, как оно меняется в течение теста (около 1,5 ч), совсем другое.
Мои вопросы сейчас:
- Этоизменение в реальности или в измерении?Т.е. Chrome изменил обработку памяти?Или просто как он выводит значения памяти через
totalJSHeapSize
и usedJSHeapSize
? - Что касается утечек памяти, это хорошая или плохая новость для меня?Как: раньше у меня были десятки мест, где память увеличивается, сейчас у меня всего три.Это правда?Или утечки памяти в теперь плоских областях все еще там и скрыты?
Я также благодарен за любую справочную информацию о том, как Chrome изменил свое измерение памяти.
Некоторая дополнительная информация:
- Виртуальная машина работает под управлением KUbuntu 18.04
Это приложение для одной веб-страницы, выполненное с AngularJS 1.6
Результатизмерение памяти достаточно стабильно - как до, так и после обновления Chrome
РЕДАКТИРОВАТЬ: Похоже, это была ошибка Chrome версии 69. По крайней мере, с обновление до Chrome 70 , это странное поведение исчезло, и все выглядит почти как прежде.