Разработчики Яндекс Браузера нашли способ экономить заряд батареи на смартфонах и ноутбуках за счет сокращения потребления браузером ресурсов центрального процессора в среднем на 10%.
Под капотом у Браузера много взаимосвязанных процессов. Основной процесс обрабатывает действия пользователя и координирует работу других процессов. Процессы отрисовки отвечают за отображение веб-страницы, GPU-процесс – за быстрый показ содержимого браузера и взаимодействие с графическими драйверами. Сетевой процесс занимается передачей данных через сеть, а вспомогательные процессы занимаются, например, декодированием сжатых изображений или распознаванием голоса. Упрощенно это взаимодействие можно изобразить вот так:
Все эти процессы можно увидеть, если открыть «Диспетчер задач» в меню Яндекс Браузера:
Использование отдельных процессов для разных задач делает Браузер более стабильным: ошибки и зависания на отдельных сайтах не влияют на работу приложения в целом. Повышается и уровень безопасности, ведь все процессы кроме основного запускаются в своего рода «песочницах», которые ограничивают их доступ к операционной системе и друг к другу.
Однако такая архитектура влечет за собой заметные дополнительные расходы, которые влияют на продолжительность автономной работы устройств, в особенности — мобильных. Например, увеличивается потребление оперативной памяти в сравнении с однопроцессной архитектурой. Интенсивное межпроцессное взаимодействие «съедает» значительную часть ресурсов центрального процессора (CPU), так как при многопроцессной архитектуре за одну секунду процессы Браузера могут обмениваться тысячами небольших информационных «сообщений».
Разработчики браузера проанализировали наиболее частотные сообщения и нашли способ оптимизировать этот обмен информацией – нашли избыточные сообщения и перестали их отправлять. Помимо этого, оптимизировали содержание сообщений, чтобы их облегчить. А после провели эксперимент с целью определить, как это решение повлияет на работу Браузера.
Выяснилось, что изменение позволяет сократить потребление Браузером ресурсов центрального процессора на ноутбуках и Android-смартфонах в среднем на 10%. Улучшенный режим работает в Яндекс Браузере, начиная с версии 22.5.4 на Windows, Mac, Linux и с версии 22.7.0 на Android.
Напомним, режим энергосбережения появился в Браузере для компьютеров несколько лет назад. Браузер снижает активность фоновых вкладок, выключает анимацию фона и интерфейса, обновляет картинку не 60, а 30 раз в секунду.