В Google Chrome 85 отключили оптимизацию памяти Windows 10 из-за увеличения нагрузки на процессор

2020-07-16 6993 комментарии
Компания Google приостановила тестирование функции оптимизации памяти Windows 10, разработанную Microsoft, из-за серьезного падения производительности в браузере Google Chrome

Все веб-браузеры, включая Google Chrome, исторически имели проблемы с потреблением большого объема памяти. Иногда даже четыре открытые вкладки могут потреблять около 5 гигабайт ОЗУ.

Google Chrome

Данная проблема актуальна не только для Chrome, но также часто наблюдается и в Mozilla Firefox.

В Windows 10 представлена функция оптимизации памяти на основе использования сегмента кучи

С выходом Windows 10, версия 2004 (May 2020 Update), Microsoft представила простой способ для использования сегмента (segment heap) кучи в Windows 10 для хранения данных с целью улучшения оптимизации памяти.

В документе для разработчиков Microsoft пояснила:

Значение SegmentHeap показывает, что сегмент кучи будет использоваться. Сегмент кучи является современной реализацией кучи, которая снижает общее потребление памяти. Данный элемент поддерживается в Windows 10, версия 2004 (сборка 19041) и выше.

После изучения новой функции, инженеры Google решили протестировать использование сегмента кучи в Chrome вместо стандартной кучи, чтобы проверить влияние на потребление памяти.

Инженер Google, Брюс Доусон (Bruce Dawson) отметил в коммите:

При проведении экспериментов с использованием сегмента кучи для chrome.exe мы ожидали добиться экономии памяти в сотни мегабайт для основного процесса браузера и службы сетевого подключения на отдельных тестовых устройствах. Полученные результаты должны были сильно различаться, при этом наибольшая экономия должна была приходиться на многоядерные машины.

В своих тестах Доусон обнаружил, что сегмент кучи снижает потребление памяти на внушительные 30%, поэтому эксперименты были продолжены уже в Chrome 85 Canary.

Тесты показали падение производительности

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

По словам Доусона, при включении сегмента кучи повышенная загрузка ЦП приводит к снижению производительности Google Chrome на 10%, а энергопотребление и нагрузка на ЦП увеличиваются на 13%.

По этой причине Google отключил использование сегмента кучи в Chrome 85, но оставил флаг для последующего тестирования.

Наш план заключается в отключении функции в версии 85 с последующим пересмотром в будущем.

Повышение нагрузки на процессор (10%-ное замедление по данным Speedometer и 13%-ное увеличение энергопотребление) оказалось слишком большим для нас.

Доусон надеется, что Microsoft добавит новые возможности в функцию HeapCreate(), которая используется для создания новой кучи памяти, для контроля использования кучи со стороны разработчиков приложений.

Если это будет реализовано, в будущем будет проще протестировать сегменты кучи и, возможно, разработать решение для снижения нагрузки на процессор.

Для пользователей Windows это означает, что Chrome будет продолжать потреблять чрезмерное количество памяти при просмотре веб-страниц.

© . По материалам Bleeping Computer
Комментарии и отзывы

Нашли ошибку?

Новое на сайте