Браузер Mozilla Firefox получил долгожданную оптимизацию кода
Про Mozilla Firefox иронично говорят, что это «браузер, который навсегда останется в памяти». Речь о его рекордных аппетитах в отношении оперативной памяти и вредной привычке висеть в ней как зомби-процесс. Однако в последнее время разработчики
Впервые работа с оперативной памятью была серьёзно оптимизирована в текущей версии за номером двадцать четыре. Главным образом изменения кода затронули способ работы с изображениями. До двадцать третьей версии включительно все картинки со всех страниц загружались и оставались в памяти постоянно, пока не закрывались соответствующие им вкладки.
Во время тестирования журналист немецкого издания Ghacks Technology News Мартин Бринкман (Martin Brinkmann) легко воссоздавал ситуации, когда браузер отъедал до 3 ГБ оперативной памяти. Даже не пытаясь имитировать тяжёлую нагрузку, я просто посмотрел, сколько в данный момент, пока пишу статью для «Компьютерры», требуется двадцать четвёртой версии. Получилось, около гигабайта.
![Mozilla Firefox v.24 занимает около гигабайта в ОЗУ при открытии 19 вкладок (скриншот)](https://novostey.com/i4/2013/10/04/808336b52b1f494270760c5ced291098.png)
Как понять — это объективно много или просто страницы подобрались такие тяжёлые? Попробуем открыть их в другом браузере. Те же самые вкладки в Opera 12.16 занимают… да примерно столько же и занимают! Разница, что называется, в пределах погрешности методики измерения.
![Opera 12.16 занимает столько же оперативной памяти при открытии тех же вкладок (скриншот)](https://novostey.com/i4/2013/10/04/775109be1cb4ff21af3ae1b2ab0d5cc7.png)
В текущей версии Firefox за номером 24 из памяти постепенно стали удаляться изображения, которые не принадлежат текущей странице. При загрузке браузера с кучей вкладок (восстановление сеанса) отмечается, как и прежде, пик выделения ОЗУ, но теперь он быстро спадает из-за выгрузки изображений. Уже через несколько секунд работа становится комфортной. Пока я писал эти строки, процесс firefox.exe стал занимать 575 МБ, в то время как «Опера» «похудела» совсем незначительно — в пределах пары десятков мегабайт.
![Оптимизация работы с памятью в разных версиях Mozilla Firefox (изображение: cdn.ghacks.net)](https://novostey.com/i4/2013/10/04/57ef729874ccc7cda7bfd47f6bf7159d.png)
По данным StatCounter, сейчас доля всех версий Firefox составляет чуть больше восемнадцати процентов от общего числа браузеров, а «Оперой» пользуются единицы её давних фанатов.
![Статистика популярности браузеров по данным за сентябрь 2013 г. (изображение: gs.statcounter.com)](https://novostey.com/i4/2013/10/04/ed3c68ed1d74fcb184072a665c570281.png)
Лидирует Google Chrome, о грамотной работе которого с системными ресурсами слагают легенды. Давайте сравним.
![Google Chrome работает с оперативной памятью ничуть не лучше других браузеров (скриншот)](https://novostey.com/i4/2013/10/04/a51f86019bbc2ca8d1c2505e03e7947d.png)
Действительно — легенды. Практически такая же картина: около 900 МБ в сумме — и только потому, что несколько страниц никак не желали загрузиться до конца. Обратите внимание, что число процессов с названием #chrome#.exe на три больше числа открытых в браузере вкладок. Затрудняюсь объяснить этот факт. Если посмотреть в диспетчере задач ниже, то мы увидим дополнительные процессы, ассоциированные с браузером Chrome, которые тоже отъедают память. Например, Google Updater. Иными словами, в моём микротесте всем трём браузерам потребовалось примерно одинаковое количество оперативной памяти.
При специальном исследовании версия 23 браузера Firefox вела себя как программа из анекдота — занимала столько памяти, сколько найдёт. Двадцать четвёртая начинала демонстрировать такое же поведение, но потом быстро избавлялась от неактуальных данных. Тестовая двадцать шестая версия под кодовым названием «Аврора» и вовсе должна явить чудеса оптимизации.
Её релиз запланирован на декабрь. Согласно предварительной информации с портала разработчиков, в оперативной памяти будут оставаться только видимые в данный момент изображения (похожий метод оптимизации используется в компьютерных играх). Разработчики считают, что Firefox версии 26 даже при открытии сотни тяжёлых сайтов в каждый момент времени будет требовать не более половины гигабайта ОЗУ. Самое удивительное, что при снижении потребления браузером оперативной памяти в разы прокрутка веб-страниц должна оставаться плавной.