Библиотека сайта rus-linux.net
MemShrink
Глава 5 из книги "Производительность приложений с открытым исходным кодом".
Оригинал: MemShrink
Автор: Kyle Huey
Дата публикации: 21 Сентября 2012 г.
Перевод: А.Панин
Дата перевода: 21 Ноября 2013 г.
Введение
Веб-браузер Firefox в течение длительного промежутка времени имел репутацию приложения, потребляющего чрезмерно большие объемы памяти. Степень использования памяти варьировалась с течением времени, но репутация браузера никак не менялась. Каждый релиз Firefox, выпущенный в течение нескольких прошедших лет, скептически настроенные пользователи встречали вопросом: "Исправили ли они наконец ту утечку памяти?" Мы выпустили версию 4 веб-браузера Firefox в марте 2011 года после длительного цикла бета-тестирования и пропуска нескольких предварительно установленных дат релиза - и она была встречена такими же вопросами. Хотя версия 4 веб-браузера Firefox и была значительным шагом вперед в таких областях, как поддержка открытых форматов видео, повышение производительности интерпретатора языка JavaScript, а также поддержка механизмов ускорения для вывода графики, она была, к сожалению, большим шагом назад в области потребления памяти.
Сегмент рынка веб-браузеров в последние годы стал весьма конкурентным. Благодаря развитию мобильных устройств, выпускам релизов веб-браузера Google Chrome и повторным инвестициям в развитие веб-технологий от компании Microsoft, веб-браузер Firefox оказался в одном сегменте рынка с отличными и хорошо финансируемыми конкурирующими проектами вместо единственного не развивающегося веб-браузера Internet Explorer. В рамках проекта Google Chrome, в частности, были преодолены значительные сложности на пути к реализации таких пользовательских качеств, как высокая скорость работы и отзывчивость. Мы начали понимать, что сложной работы, направленной на то, чтобы сделать просто хороший веб-браузер, уже не достаточно; нам необходимо было сделать превосходный браузер. Как сказал Mike Shiver, в то время бывший вице-президентом отдела разработки организации Mozilla, а также опытным разработчиком из той же организации Mozilla, "Это тот мир, который мы хотели и это тот мир, который мы создали."
Это то положение, в котором мы находились в 2011 году. Рыночная доля веб-браузера Firefox находилась на одном и том же уровне, либо уменьшалась, в то время, как рыночная доля Google Chrome быстро росла. Даже несмотря на то, что мы начали работу по сокращению разрыва в производительности, мы все еще значительно отставали по показателю потребления памяти, так как в Firefox версии 4 были представлены более быстрая реализация интерпретатора языка JavaScript и механизм ускорения вывода графики, которые как обычно были реализованы ценой дополнительных затрат памяти. После выпуска Firefox 4 группа инженеров под руководством Nicolas Nethercote начала работу в рамках проекта MemShrink, направленного на установление контроля над потреблением памяти. Сегодня, спустя почти полтора года, согласованные действия этой группы разработчиков позволили радикально изменить потребление памяти веб-браузером Firefox, а также его репутацию. Мысли об "утечке памяти" перестали волновать большую часть пользователей и на данный момент в ходе сравнений Firefox обычно признается одним из веб-браузеров, потребляющих наименьшие объемы памяти. В данной главе будут рассмотрены мероприятия, которые мы осуществили для улучшения ситуации с использованием памяти веб-браузером Firefox, а также уроки, которые мы выучили в ходе осуществления этих мероприятий.
Продолжение статьи: Обзор архитектуры.