Все веб-браузеры, включая Google Chrome, исторически имели проблемы с потреблением большого объема памяти. Иногда даже четыре открытые вкладки могут потреблять около 5 гигабайт ОЗУ.
Данная проблема актуальна не только для 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 будет продолжать потреблять чрезмерное количество памяти при просмотре веб-страниц.
Обновления программ, что нового
• Firefox 139 Beta: повышена производительность загрузки по HTTP/3, улучшены перевод страниц и поддержка PNG
• Обновление NVIDIA GeForce Game Ready 576.28 WHQL. Исправления для RTX 50 и улучшения стабильности работы игр
• Новые функции «Алисы» и «Яндекс Станций» за апрель 2025 года
• Релиз Chrome 136: Обновления безопасности и исправление уязвимости, которая существовала более 20 лет
• Обновление до Windows 11, версия 24H2 блокируется на старых версиях Windows 11 из-за бага в службе WSUS
• Обновление Intel Bluetooth Drivers 23.130.0 для Windows 11 и Windows 10: функциональные улучшения