Браузер Mozilla Firefox получил долгожданную оптимизацию кода Андрей Васильков

Браузер Mozilla Firefox получил долгожданную оптимизацию кода

Андрей Васильков

Опубликовано 04 октября 2013

Про Mozilla Firefox иронично говорят, что это «браузер, который навсегда останется в памяти». Речь о его рекордных аппетитах в отношении оперативной памяти и вредной привычке висеть в ней как зомби-процесс. Однако в последнее время разработчики уделяют большое внимание оптимизации его кода — повышают стабильность работы и успешно снижают его потребности в объёмах ОЗУ.

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

Во время тестирования журналист немецкого издания Ghacks Technology News Мартин Бринкман (Martin Brinkmann) легко воссоздавал ситуации, когда браузер отъедал до 3 ГБ оперативной памяти. Даже не пытаясь имитировать тяжёлую нагрузку, я просто посмотрел, сколько в данный момент, пока пишу статью для «Компьютерры», требуется двадцать четвёртой версии. Получилось, около гигабайта.

Mozilla Firefox v. 24 занимает около гигабайта в ОЗУ при открытии 19 вкладок (скриншот).

Как понять — это объективно много или просто страницы подобрались такие тяжёлые? Попробуем открыть их в другом браузере. Те же самые вкладки в Opera 12.16 занимают… да примерно столько же и занимают! Разница, что называется, в пределах погрешности методики измерения.

Opera 12.16 занимает столько же оперативной памяти при открытии тех же вкладок (скриншот).

В текущей версии Firefox за номером 24 из памяти постепенно стали удаляться изображения, которые не принадлежат текущей странице. При загрузке браузера с кучей вкладок (восстановление сеанса) отмечается, как и прежде, пик выделения ОЗУ, но теперь он быстро спадает из-за выгрузки изображений. Уже через несколько секунд работа становится комфортной. Пока я писал эти строки, процесс firefox.exe стал занимать 575 МБ, в то время как «Опера» «похудела» совсем незначительно — в пределах пары десятков мегабайт.

Оптимизация работы с памятью в разных версиях Mozilla Firefox (изображение: cdn.ghacks.net).

По данным StatCounter, сейчас доля всех версий Firefox составляет чуть больше восемнадцати процентов от общего числа браузеров, а «Оперой» пользуются единицы её давних фанатов. 

Статистика популярности браузеров по данным за сентябрь 2013 года (изображение: gs.statcounter.com).

Лидирует Google Chrome, о грамотной работе которого с системными ресурсами слагают легенды. Давайте сравним.

Google Chrome работает с оперативной памятью ничуть не лучше других браузеров (скриншот). 

Действительно — легенды. Практически такая же картина: около 900 МБ в сумме — и только потому, что несколько страниц никак не желали загрузиться до конца. Обратите внимание, что число процессов с названием chrome.exe на три больше числа открытых в браузере вкладок. Затрудняюсь объяснить этот факт. Если посмотреть в диспетчере задач ниже, то мы увидим дополнительные процессы, ассоциированные с браузером Chrome, которые тоже отъедают память. Например, Google Updater. Иными словами, в моём микротесте всем трём браузерам потребовалось примерно одинаковое количество оперативной памяти.

При специальном исследовании версия 23 браузера Firefox вела себя как программа из анекдота — занимала столько памяти, сколько найдёт. Двадцать четвёртая начинала демонстрировать такое же поведение, но потом быстро избавлялась от неактуальных данных. Тестовая двадцать шестая версия под кодовым названием «Аврора» и вовсе должна явить чудеса оптимизации.

Её релиз запланирован на декабрь. Согласно предварительной информации с портала разработчиков, в оперативной памяти будут оставаться только видимые в данный момент изображения (похожий метод оптимизации используется в компьютерных играх). Разработчики считают, что Firefox версии 26 даже при открытии сотни тяжёлых сайтов в каждый момент времени будет требовать не более половины гигабайта ОЗУ. Самое удивительное, что при снижении потребления браузером оперативной памяти в разы прокрутка веб-страниц должна оставаться плавной.

К оглавлению