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

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

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

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

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

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

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

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

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

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

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

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

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

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

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