Cравнение скорости браузеров
В Сети идет война за скорость. Браузеры соревнуются на многих фронтах: безопасность, поддержка стандартов, функциональность, скорость... Большинство людей знает, какой из крупных браузеров проигрывает по трем из этих параметров, но по одному из них вопрос остается открытым. Этот параметр — скорость.
Множество организаций и пользователей заявляют, что их браузер — самый быстрый. На сайте Opera пишут, что "Opera — это Самый Быстрый Браузер на Земле!" На сайте Mozilla говорится, что "Firefox 1.0 дает вам возможность браузить быстрее" (быстрее чего?). Сам же Mozilla преподносится как более быстрая альтернатива Microsoft IE. На страницах об Apple Safari твердят, что Safari загружает страницы быстрее любого другого веб-браузера для Mac (хотя не показаны результаты Opera, и в их графиках нет результатов для страниц с картинками). Часто пользователи Internet Explorer утверждают, что пользуются им благодаря высокой скорости, так как альтернативные варианты исполняют и загружают страницы медленнее. Пользователи Opera и Firefox также любят поговорить на эту тему, но никто не может привести данные исследований, подтверждающих их заявления. Обычно говорят лишь, что "Х гораздо дольше загружается, чем Y" или "мой друг использует Х, и он на его компьютере куда медленнее Y на моем". Те же, кто пользовался более чем одним браузером, обычно говорят что "Х, на мой взгляд, работал быстрее Y, когда я их испытывал" (хотя это может быть следствием знакомого/более удобного пользовательского интерфейса — этот вопрос в статье не затрагивается). Я даже слышал, как люди сравнивали Firefox с Opera, осознавая впоследствии, что ссылались на Opera 6 (несмотря на то, что старушка и сейчас держится молодцом, Opera 6 — примерный эквивалент Netscape 4), которая впоследствии обрела абсолютно новый движок еще задолго до появления Firefox.
Что ж, мне надоели эти необоснованные аргументы, и я представляю собственное исследование. Это честный и беспристрастный обзор (или максимально объективный, по моим меркам). В отличие от большинства людей, я не только проверил все браузеры, но и проделал это на одном компьютере для Linux, Mac и Windows (используя одинаковое или эквивалентное железо для каждого). Надеюсь, это помогло не только корректно сравнить браузеры между собой, но и достаточно точно оценить степень оптимизации мультиплатформенных браузеров для каждой из поддерживаемых платформ.
Тесты
Для проверки скоростных качеств браузеров я прогонял их через множество тестов. Каждый тест выполнялся по строгим и единым правилам, что обеспечивало объективность результатов. Я использовал один и тот же компьютер для каждой платформы, чтобы обеспечить сравнение лишь самих браузеров, а не железа или софта. Каждый тест проводился для установок браузера по умолчанию, без твикинга каких бы то ни было параметров (знаю, что некоторые браузеры работают лучше, если подстроить настройки сети, но тест планировался как сравнение браузеров при стандартных настройках — некоторые люди предполагают, что использование "родного скина" увеличивает скорость браузера, но у меня результаты для родного и неродного скинов практически сошлись). Для браузеров, предлагающих функции электронной почты или новостных групп, я включал соответствующие компоненты, но не оставлял в них почтовых или новостных сообщений (некоторые при этом работали бы иначе, но в тестировании не ставилась задача исследовать такое их поведение). Идея была в том, чтобы определить быстрейший(-ие) браузер(-ы) для выполнения основных требующихся задач. К основным требованиям относилось понимание браузером HTML, CSS, JavaScript, простого DHTML и картинок — если движок браузера не справлялся с этими задачами, он меня не интересовал и не тестировался.
Холодный запуск
Замерялось время, которое требуется на холодный запуск. Я завершал сеанс (log out) в ОС и логинился снова. Как только все фоновые процессы отрабатывали, я запускал браузер в качестве первой и единственной программы. Для него применялись установки по умолчанию, без предварительно загружающихся инструментов или элементов быстрого запуска (за исключением случаев, когда браузер сам устанавливает себя таким образом — например, как Internet Explorer в Windows). Браузеры были настроены на показ одной и той же страницы при запуске — простейшей локальной HTML-странички.
Горячий запуск
После холодного пуска я закрывал браузер и замерял, сколько времени ему потребуется на повторный запуск. Я повторял процедуру дважды и брал среднее значение.
Рендеринг CSS
Для тестирования рендеринга (отображения) CSS я использовал тест CSS сайт предложенный nontroppo сайт Тест измеряет время, которое требуется браузеру на отображение страницы, состоящей из почти 2500 отпозиционированных DIV'ов. Страница с тестом хранилась локально. Она загружалась сперва вхолостую, для подгрузки элементов, а затем перегружалась трижды, при этом в качестве итогового выбирался средний результат из трех. Страница с тестом была первой посещенной после старта браузера страницей (браузер запускался после завершения старого и начала нового сеанса). Все браузеры в ходе первоначальной загрузки показывали гораздо худший результат, поэтому я и не учитывал результаты этого "предварительного" испытания как не отражающего реальную скорость рендеринга.
Рендеринг таблицы
Для измерения скорости рендеринга таблицы я загружал локальную копию главной страницы своей javascript-библиотеки ( сайт Я снова игнорировал результаты первой загрузки, а после ее завершения возвращался и щелкал по линку еще раз (удостоверившись, что и страница, и связанные с ней файлы попали в кэш). Затем я использовал скрипт, измеряющий время, требуемое для рендеринга странички, и выбирал средний результат из трех заходов.
Обработка скриптов
Для проверки скорости работы скриптов я использовал чудесный тестовый инструмент с 24fun.com сайт . Он предназначен для тестирования множества браузеров на одном компьютере и последующего их сравнения. При этом даже небольшие различия в аппаратной или программной части могли вызвать большие различия в результатах, так что было очень важно, чтобы тесты проводились на одной и той же конфигурации. После завершения старого и начала нового сеанса (log out/log in) я загружал браузер, очищал кэш, отключал блокировку всплывающих окон (требование тестов) и проводил тестирование. Использованный тестовый инструмент (BenchJS) проверяет огромное количество различных вещей включая математические вычисления, DHTML, работу со строками, таблицами, содержимым страницы, смену изображений, а также управление окнами. Для большинства браузеров я просто прогонял тест дважды и брал среднее значение — но только не для iCab! Первый раз он пыхтел над тестовыми заданиями полчаса, я же караулил и несколько раз "повторял" ему, что это не в скрипте бесконечный цикл, это он сам (браузер) такой ужасающе тормозной!
Изображения
Этот тест проделывался для отражения обычной методики взаимодействия с веб-сайтами. Я заставлял браузер загружать страничку с несколькими маленькими изображениями. Это требует множества подключений к серверу и является хорошей проверкой возможностей работы с сетевыми соединениями браузера, а также того, насколько хорошо он управляется с одновременным рендерингом множества изображений. После завершения старого и начала нового сеанса я загружал браузер, очищал его кэш и использовал поиск изображений в Google для поиска "solid". При этом происходит прекэшинг всех страниц, на которые имеются ссылки, а заодно выполнение требуемых DNS-запросов для минимизации влияния задержек с DNS на конечный результат. Затем я искал в Google Image Search еще три слова ("pine", "red", "stone" — не спрашивайте, почему они такие — сам не ожидал) и использовал среднее время загрузки этих трех страниц (таймер запускался одновременно с нажатием кнопки Search и останавливался, когда все изображения были полностью загружены и отображены на экране). Скорость моего соединения с Интернетом — 100 Мбит/сек — она не оказывала видимого влияния на результат. Я также проводил тесты на 700 Кбит/сек соединении и получал похожие результаты. Что касается времени выдачи результатов Google'ом, то оно обычно меньше 0,03 секунды.
History
Это та вещь, которую обычно упускают из виду при тестировании скорости браузеров, но которая, тем не менее, заметно влияет на общую скорость загрузки и просмотра страниц. Я использовал поиск изображений Google для нахождения "pine", а затем проходил первые 25 страниц с результатами. После чего я запускал таймер и возвращался к первой странице результатов максимально быстрым способом (кнопка Назад), а затем переходил обратно на 25-ю страницу (кнопка Вперед) тем же наибыстрейшим способом. Каждая промежуточная страница до перехода к следующей загружалась полностью включая изображения (то есть до тех пор, пока браузер не демонстрировал собственными средствами индикации, что страница полностью загружена). Для перемещения между страницами я использовал наиболее быстрый способ навигации (обычно горячие клавиши). Этот тест демонстрирует, насколько эффективно браузер использует кэширование для ускорения браузинга.
Замечание: Я не тестировал плагины вроде Java или Flash, так как они являются внешними, не относящимися к браузеру, программами. Они гораздо больше зависят от номера своей версии, ограничений памяти ОС, каковые, разумеется, находятся вне полномочий браузера.
Результаты тестов
Результаты тестов приводятся в табличной форме, единица измерения всех результатов — секунда. Наилучший (быстрейший) результат выделен серым.
Браузеры под Linux
Тесты проводились на SuSE Linux 9.1 с использованием KDE (за исключением Epiphany, чьи результаты приведены для Gnome, т.к. это ее нормальная рабочая среда). Я также проверял браузеры на Gnomе, но получил заметно различающиеся результаты лишь для Konqueror'а, так что это единственный браузер, чьи результаты приведены как для Gnome, так и для KDE. Я концентрировался на основных Gecko-базированных браузерах — их существует множество. Для тестирования же были избраны Mozilla (SeaMonkey), Firefox и Epiphany, так как это два официальных релиза с Mozilla.org и официальный браузер DTE Gnome соответственно. Я не смог протестировать Galeon (один из наиболее популярных браузеров под Gnome), так как он не был доступен для той версии Mozilla, которая была установлена у меня. Однако, поскольку по сути он — лишь красивый скин для Mozilla (как и Epiphany), то его результаты должны быть схожими с результатами Mozilla. Тесты Opera 8 проводились с использованием Opera 8 beta 1, тесты Mozilla 1.8 — с использованием Mozilla 1.8 alpha 6.
Конфигурация: 800 MHz Intel Pentium 3, 256 Mb RAM.
(1) Использует предустановленный Mozilla 1.6.0
(2) Индикатор показывает, что страница загружена, еще до завершения загрузки всех картинок
(3) KDE производит предварительную загрузку некоторых компонентов
Браузеры для Mac
В основном я сосредоточился на браузерах для Mac OS X, потому что для Mac OS 9 браузеров в данный момент не разрабатывается (за исключением iCab): IE 5 больше не обновляется, нет последних релизов Mozilla или родственных браузеров для OS 9. Для OS 9 не выпускается Opera 7. Safari, OmniWeb и им подобные работают лишь на OS X. Тесты Opera 8 проделаны на техническом пререлизе 1 (technical preview 1). Тесты Mozilla 1.8 — на Mozilla 1.8 alpha 6. Тесты всех браузеров производились под Mac OS X 10.3.7 (Panther). Safari 2.0 тестировался на предварительном варианте версии 10.4 (Tiger). Я проверял остальные браузеры на Tiger лишь для того, чтобы удостовериться в корректности полученных данных — и действительно, они оказались практически идентичными результатам под Panther. Обновленная Safari 2.0 демонстрирует впечатляющее увеличение производительности в работе с CSS, DHMTL и управлением окнами. Opera 8 также показала заметное улучшение, буквально в два раза увеличив скорость обработки скриптов, работы с кэшем и уменьшив время загрузки.
Конфигурация: 400 MHz G4 (примерный эквивалент 800 MHz Intel Pentium 3), 256 Mb RAM.
(1) Предположительно, оптимизирован под конкретную модель процессора
(2) Большинство стилей не поддерживается
(3) Да, действительно 32 минуты!
(4) Beta 2
(5) 7 минут на загрузку, 12 – на рендеринг... Правда, в отличие от предшественника, поддерживает CSS2
(6) Да, действительно 35 минут! Причем часто вываливался (не хватало памяти) в процессе тестирования
(7) Переход обратно по кнопке "Back" занял 62 секунды, а после 22 страниц нарушился порядок – кнопка "Вперед" не работала
(8) Полностью некорректное отображение
(9) Тест не запустился из-за плохой поддержки JavaScript
(10) Переход назад занял вдвое больше времени, чем переход вперед
(11) Движок Safari 1.0
(12) Движок Safari 1.2
(1) Большая часть стилей не поддерживается
(2) После 15 мин. работы не хватило памяти
(3) Beta 2
(4) 7 минут на загрузку, 14 – на рендеринг... Правда, в отличие от предшественника, поддерживает CSS2
(5) Повалил всю ОС
(6) Переход обратно по кнопке "Back" занял 84 секунды, а после 10 страниц нарушился порядок – кнопка "Вперед" не работала
(7) Эквивалент 5.2 на OS X
(8) Браузер максимально удерживал в памяти 20 последних страниц – результат экстраполирован
(9) Последний официальный build для Mac OS 9
(10) Не прошел тест со всплывающими окнами
Браузеры для Windows
Тесты проводились под управлением Windows XP SP2. Internet Explorer 6 — в стандартном комплекте поставки, Internet Explorer 5 устанавливался из zip-архива; дистрибутив можно скачать с Quirks-Mode.org сайт . Каждый раз, когда я пытался запустить IE 5.5, он вываливался с ошибкой. Настройки производительности Windows установлены в автоматический режим (по умолчанию). Тесты Opera 8 проделаны на бета-версии 1 (beta 1). Тесты Mozilla 1.8 — на Mozilla 1.8 alpha 6. Я также протестировал дистрибутив Firefox от Moox, "оптимизированный" для моего конкретного процессора. Тестировался Netscape — по сути, он оказался Firefox'ом, увешанным ненужным, замедляющим браузер, мусором. K-Meleon — еще один браузер на Gecko, по слухам — быстрейший (хотя на поверку во всех задачах, кроме запуска, он оказался медленнее Firefox и Mozilla). Я также протестировал несколько старых браузеров (Netscape 4, Escape 4, Clue, Internet Explorer 5.0, Mozilla 1.0, Opera 6.03) — из чистого любопытства (кстати, интересно отметить, что IE 5.0 заметно быстрее IE 6.0).
Конфигурация: 800 MHz Intel Pentium 3, 256 Mb RAM.
(1) Использует движок Internet Explorer 6.0
(2) Браузер сворачивается в трей при нажатии; для объективности сравнения я закрывал его полностью
(3) Сдался после 10 минут попыток
(4) Внутренняя ошибка
(5) Не смог пройти тест из-за плохой поддержки JavaScript
(6) В ходе теста из кэша "добывались" некорректные страницы без картинок
(7) (8) Полностью некорректный рендеринг
(9) Спровоцировал две ошибки при запуске
(10) Проблемы с буферизацией даты/времени, необходимо модифицировать некоторые тесты
(11) Полностью некорректный рендеринг
(12) (13) Windows подгружает некоторые компоненты для большинства инсталляций
(14) Вываливается с ошибкой в ходе теста
(15) Переход вперед по просмотренным страницам, после 23-й страницы перестал работать
(16) Использует движок Internet Explorer 6.0
(17) Предварительная версия нового браузера Netscape
(18) Некоторые стили не были обработаны
(19) Проблемы с буферизацией даты/времени, необходимо модифицировать некоторые тесты
(20) Полностью некорректный рендеринг
(21) Часто портится внешний вид
(22) Неоднократно сбоил в процессе тестов
(23) Полностью некорректный рендеринг
(24) Кнопка "вперед" в компьютерном варианте недоступна, поэтому я совершил два прохода "назад"
Выводы
Нет-нет — оставлю их вам. Все зависит от того, как и для чего вы применяете браузер, а также от операционной (-ых) системы (систем), в рамках которых вы его используете. Взгляните на таблицы и определитесь, какой браузер лучше всего вам подходит.
Ну, хорошо, хорошо — получайте аналитику. Firefox и Mozilla, очевидно, оптимизированы под Linux, а Opera — под Windows. Эти оптимизации наиболее заметны, если взглянуть на время загрузки, хотя также имеется небольшая разница в организации работы с кэшем для разных ОС. Однако Opera выглядит весьма достойно при большинстве задач для любой платформы. При рендеринге страниц (CSS, изображения, таблицы) большинство крупных браузеров работает очень быстро, разница между ними мала. Но по работе со скриптами Opera явно на голову выше всех, показывая чуть ли не вдвое превосходящий конкурентов результат. К ней приближается только Safari 2.0, но он привязан к новой версии Mac OS — Tiger, в настоящий момент находящейся в стадии разработки. Opera также абсолютный победитель по работе с "Журналом" (History, кэш). На Linux Opera быстрее Mozilla и Firefox по всем параметрам, кроме времени запуска. Удивительно, но Mozilla в большинстве задач быстрее Firefox. Под Windows Internet Explorer для большинства задач столь же быстр (или быстрее), как Mozilla и Firefox, за исключением вдвое более медленной обработки скриптов. Разумеется, слабая поддержка стандартов и низкая безопасность делают его не слишком привлекательной перспективой для использования. Дистрибутив Moox Firefox медленнее стандартных Firefox, распространяемых через Mozilla.org, хотя, судя по всему, он оптимизирован для моего процессора. Заточенная под Mac версия смотрится чуть лучше, но она обеспечивает высокую скорость в одном тесте взамен заметного отставания в другом, сводя суммарную разницу к минимуму, или даже к нулю. Показатели K-Meleon и Epiphany схожи с аналогичными для Mozilla и Firefox. Новая предварительная версия Netscape Browser (основанного на Firefox), безусловно, страдала от раздутости, вызванной адд-онами АОL.
Улыбку вызывает факт, что IE на Windows замедляется с выходом новых версий в большинстве тестов. Браузеры, использующие движок IE (Maxthon или Avant), еще сильнее замедляют его, хотя Avant умудряется увеличить скорость обработки скриптов. Opera 6 была быстрее по части рендеринга простых страниц, чем Opera 7 или 8, в Windows и Linux, однако этот плюс легко перевешивался минусами в лице устаревшей и медленной поддержки скриптов, отсутствия переформатирования текста и прогрессивного рендеринга, более медленной работы с сетью и изображениями, а заодно тормозов при работе с кэшем на Mac и Linux. С другой стороны, Mozilla однозначно продвинулась далеко вперед со времен первого 1.0 релиза (который оказался, по большому счету, даже медленнее предка — Netscape 4), но ее скриптовому движку нужно еще долго догонять оный из Opera, который также не стоит на месте. И так самый быстрый скриптовый движок Opera ускорился почти вдвое в релизе 8.0. Я не принимал во внимание одну вещь (хотя она может играть значительную роль для реальных страниц) — прогрессивный рендеринг. Например, Opera 6 быстрее обработала таблицу, но до полного окончания работы ничего не показывала на экране. Opera 7 и выше обрабатывает таблицу медленнее (примерно на полсекунды), но отображает ее по мере выполнения ("прогресса"): первая часть появляется на экране, как только браузер ее обработает, а не после завершения работы над всей таблицей целиком. Следовательно, вы сможете начать изучать страницу раньше. Для страниц, которые выдаются медленными серверами (или для медленных интернет-соединений), это может заметно увеличить скорость браузинга.
Самые быстрозапускающиеся браузеры — это Konqueror под KDE (не очень часто применяется), iCab 2 и Camino, при этом Konqueror опережает всех по скорости горячего старта. Однако у него наиболее медленная реализация работы со скриптами среди всех основных браузеров для Linux, и, хотя под Gnome скорость обработки кэша немного увеличивается, тормоза при запуске перевешивают этот плюс. Медленнее Konqueror'а только Opera 6 и Mozilla 1.0, причем оба — старые релизы, которые уже давным-давно заменены куда более быстрыми новыми версиями. "Сестры" Konqueror'а, Safara 1.2 и OmniWeb, также очень медленно выполняют скрипты. IE для Mac'ов тоже не силен в этом деле и, хотя достаточно быстро загружается, для других задач слишком "нетороплив". iCab и (старый) OmniWeb 4.2 — очевидные аутсайдеры по скорости для Mac'ов, при этом OmniWeb 4.2 медленнее всего обрабатывал таблицы и CSS, а еще полностью провалил тесты на выполнение скриптов. iCab 3 умудрился показать наихудшее время обработки скриптов, потратив на это дело более получаса (в 10 c лишним раз медленнее остальных браузеров для Mac) и абсолютное наихудшее время (среди всех платформ) по работе с CSS, потратив на это дело около 20 минут. Safari 2.0 же по сравнению с Safari 1.2 сильно прогрессирует как по части скриптов, так и по части рендеринга. У iCab 3 наблюдаются здоровые улучшения в функциях обработки CSS и выполнения скриптов, но со всем остальным при этом он работает заметно медленнее. Возможно, данный факт связан с отсутствием соответствующих оптимизаций движка (т.к. проект сейчас находится в стадии закрытой бета-версии), но в него нужно вложить еще очень много работы, ибо сомнительно, что легкие оптимизации сильно улучшат ситуацию. Все браузеры, написанные на Java, очень плохо работали со скриптами: у них было множество проблем с манипуляцией строками и вычислениями. ICEBrowser, несмотря на то, что он — один из самых медленнозапускающихся, оказался, однако, чистым победителям в своем классе по всем остальным задачам благодаря наиболее совершенным среди Java-браузеров скриптовому и CSS-движкам. Clue же оказался наихудшим, провалив почти все тесты. Но по меньшей мере мне удалось заставить его запуститься.
Итоги
В общем и целом Opera оказывается самым быстрым браузером в среде Windows. Firefox не быстрее Internet Explorer, особенно по части скриптов, но если оценивать с точки зрения поддержки стандартов, безопасности и функциональности, то он лучше продукта Microsoft. В то же время по скорости Firefox еще далеко до Operа, который также предлагает высокий уровень безопасности, соответствия стандартам и функциональности. Под Linux Konqueror — наиболее быстрый вариант (судя по запуску и просмотру простых страниц) для KDE, но, как только в страницах появляются скрипты или изображения или необходимо активно использовать кнопки Назад/Вперед (а также при использовании Gnome), Opera будет быстрее, пусть даже KDE-версия стартует на пару секунд медленнее. Mozilla и Firefox в целом демонстрируют хорошую производительность, но по скорости запуска скриптов, работе с кэшем и изображениями они все еще несравнимы с Opera. Для Mac OS X наиболее скоростные варианты — Opera и Safari. Safari 2 быстрее запускается и рендерит CSS, но Opera оказывается значительно быстрее в рендеринге таблиц, запуске скриптов и работе с кэшем (особенно по сравнению с более медленным Safari 1.2). Camino загружается быстро, но в других тестах соседствует с сестренками Mozilla и Firefox в нижней части "табели о рангах". Ни Mozilla, ни Firefox, ни IE не работают на Mac'ах очень хорошо, показывая худшие, нежели в других ОС, результаты.
P.S. От переводчика
Эта любопытная статья недавно была обнаружена на просторах Internet'а (см. ссылку внизу) и, на мой взгляд, может оказаться интересной для многих читателей нашего издания. Именно поэтому я нашел время на ее перевод, а теперь представляю вашему вниманию результат. По сравнению с оригинальной версией здесь отсутствуют некоторые лишние ремарки (об исправлении результатов Opera 8 под Linux), результаты браузеров для Mac OS 9, а также малоизвестных браузеров (Dillo, Amaya, Lynx...), которые мало того, что работают через пень-колоду, так еще и не прошли корректно примерно половину тестов. Хочется выразить огромную благодарность автору, который, судя по всему, проделал колоссальную работу по тестированию и обработке результатов всей этой уймы браузеров. Вывод же, который можно сделать на основе этого большого материала, прост и однозначен (можно было бы даже вынести его в заголовок): "Ждем финального релиза Opera 8 — быстрейшего браузера на Земле"!
Марк Уилтон-Джонс, http://www.howtocreate.co.uk/browserSpeed.html
перевод с английского Николая "Nickky" Щетько, me@nickky.com
Множество организаций и пользователей заявляют, что их браузер — самый быстрый. На сайте Opera пишут, что "Opera — это Самый Быстрый Браузер на Земле!" На сайте Mozilla говорится, что "Firefox 1.0 дает вам возможность браузить быстрее" (быстрее чего?). Сам же Mozilla преподносится как более быстрая альтернатива Microsoft IE. На страницах об Apple Safari твердят, что Safari загружает страницы быстрее любого другого веб-браузера для Mac (хотя не показаны результаты Opera, и в их графиках нет результатов для страниц с картинками). Часто пользователи Internet Explorer утверждают, что пользуются им благодаря высокой скорости, так как альтернативные варианты исполняют и загружают страницы медленнее. Пользователи Opera и Firefox также любят поговорить на эту тему, но никто не может привести данные исследований, подтверждающих их заявления. Обычно говорят лишь, что "Х гораздо дольше загружается, чем Y" или "мой друг использует Х, и он на его компьютере куда медленнее Y на моем". Те же, кто пользовался более чем одним браузером, обычно говорят что "Х, на мой взгляд, работал быстрее Y, когда я их испытывал" (хотя это может быть следствием знакомого/более удобного пользовательского интерфейса — этот вопрос в статье не затрагивается). Я даже слышал, как люди сравнивали Firefox с Opera, осознавая впоследствии, что ссылались на Opera 6 (несмотря на то, что старушка и сейчас держится молодцом, Opera 6 — примерный эквивалент Netscape 4), которая впоследствии обрела абсолютно новый движок еще задолго до появления Firefox.
Что ж, мне надоели эти необоснованные аргументы, и я представляю собственное исследование. Это честный и беспристрастный обзор (или максимально объективный, по моим меркам). В отличие от большинства людей, я не только проверил все браузеры, но и проделал это на одном компьютере для Linux, Mac и Windows (используя одинаковое или эквивалентное железо для каждого). Надеюсь, это помогло не только корректно сравнить браузеры между собой, но и достаточно точно оценить степень оптимизации мультиплатформенных браузеров для каждой из поддерживаемых платформ.
Тесты
Для проверки скоростных качеств браузеров я прогонял их через множество тестов. Каждый тест выполнялся по строгим и единым правилам, что обеспечивало объективность результатов. Я использовал один и тот же компьютер для каждой платформы, чтобы обеспечить сравнение лишь самих браузеров, а не железа или софта. Каждый тест проводился для установок браузера по умолчанию, без твикинга каких бы то ни было параметров (знаю, что некоторые браузеры работают лучше, если подстроить настройки сети, но тест планировался как сравнение браузеров при стандартных настройках — некоторые люди предполагают, что использование "родного скина" увеличивает скорость браузера, но у меня результаты для родного и неродного скинов практически сошлись). Для браузеров, предлагающих функции электронной почты или новостных групп, я включал соответствующие компоненты, но не оставлял в них почтовых или новостных сообщений (некоторые при этом работали бы иначе, но в тестировании не ставилась задача исследовать такое их поведение). Идея была в том, чтобы определить быстрейший(-ие) браузер(-ы) для выполнения основных требующихся задач. К основным требованиям относилось понимание браузером HTML, CSS, JavaScript, простого DHTML и картинок — если движок браузера не справлялся с этими задачами, он меня не интересовал и не тестировался.
Холодный запуск
Замерялось время, которое требуется на холодный запуск. Я завершал сеанс (log out) в ОС и логинился снова. Как только все фоновые процессы отрабатывали, я запускал браузер в качестве первой и единственной программы. Для него применялись установки по умолчанию, без предварительно загружающихся инструментов или элементов быстрого запуска (за исключением случаев, когда браузер сам устанавливает себя таким образом — например, как Internet Explorer в Windows). Браузеры были настроены на показ одной и той же страницы при запуске — простейшей локальной HTML-странички.
Горячий запуск
После холодного пуска я закрывал браузер и замерял, сколько времени ему потребуется на повторный запуск. Я повторял процедуру дважды и брал среднее значение.
Рендеринг CSS
Для тестирования рендеринга (отображения) CSS я использовал тест CSS сайт предложенный nontroppo сайт Тест измеряет время, которое требуется браузеру на отображение страницы, состоящей из почти 2500 отпозиционированных DIV'ов. Страница с тестом хранилась локально. Она загружалась сперва вхолостую, для подгрузки элементов, а затем перегружалась трижды, при этом в качестве итогового выбирался средний результат из трех. Страница с тестом была первой посещенной после старта браузера страницей (браузер запускался после завершения старого и начала нового сеанса). Все браузеры в ходе первоначальной загрузки показывали гораздо худший результат, поэтому я и не учитывал результаты этого "предварительного" испытания как не отражающего реальную скорость рендеринга.
Рендеринг таблицы
Для измерения скорости рендеринга таблицы я загружал локальную копию главной страницы своей javascript-библиотеки ( сайт Я снова игнорировал результаты первой загрузки, а после ее завершения возвращался и щелкал по линку еще раз (удостоверившись, что и страница, и связанные с ней файлы попали в кэш). Затем я использовал скрипт, измеряющий время, требуемое для рендеринга странички, и выбирал средний результат из трех заходов.
Обработка скриптов
Для проверки скорости работы скриптов я использовал чудесный тестовый инструмент с 24fun.com сайт . Он предназначен для тестирования множества браузеров на одном компьютере и последующего их сравнения. При этом даже небольшие различия в аппаратной или программной части могли вызвать большие различия в результатах, так что было очень важно, чтобы тесты проводились на одной и той же конфигурации. После завершения старого и начала нового сеанса (log out/log in) я загружал браузер, очищал кэш, отключал блокировку всплывающих окон (требование тестов) и проводил тестирование. Использованный тестовый инструмент (BenchJS) проверяет огромное количество различных вещей включая математические вычисления, DHTML, работу со строками, таблицами, содержимым страницы, смену изображений, а также управление окнами. Для большинства браузеров я просто прогонял тест дважды и брал среднее значение — но только не для iCab! Первый раз он пыхтел над тестовыми заданиями полчаса, я же караулил и несколько раз "повторял" ему, что это не в скрипте бесконечный цикл, это он сам (браузер) такой ужасающе тормозной!
Изображения
Этот тест проделывался для отражения обычной методики взаимодействия с веб-сайтами. Я заставлял браузер загружать страничку с несколькими маленькими изображениями. Это требует множества подключений к серверу и является хорошей проверкой возможностей работы с сетевыми соединениями браузера, а также того, насколько хорошо он управляется с одновременным рендерингом множества изображений. После завершения старого и начала нового сеанса я загружал браузер, очищал его кэш и использовал поиск изображений в Google для поиска "solid". При этом происходит прекэшинг всех страниц, на которые имеются ссылки, а заодно выполнение требуемых DNS-запросов для минимизации влияния задержек с DNS на конечный результат. Затем я искал в Google Image Search еще три слова ("pine", "red", "stone" — не спрашивайте, почему они такие — сам не ожидал) и использовал среднее время загрузки этих трех страниц (таймер запускался одновременно с нажатием кнопки Search и останавливался, когда все изображения были полностью загружены и отображены на экране). Скорость моего соединения с Интернетом — 100 Мбит/сек — она не оказывала видимого влияния на результат. Я также проводил тесты на 700 Кбит/сек соединении и получал похожие результаты. Что касается времени выдачи результатов Google'ом, то оно обычно меньше 0,03 секунды.
History
Это та вещь, которую обычно упускают из виду при тестировании скорости браузеров, но которая, тем не менее, заметно влияет на общую скорость загрузки и просмотра страниц. Я использовал поиск изображений Google для нахождения "pine", а затем проходил первые 25 страниц с результатами. После чего я запускал таймер и возвращался к первой странице результатов максимально быстрым способом (кнопка Назад), а затем переходил обратно на 25-ю страницу (кнопка Вперед) тем же наибыстрейшим способом. Каждая промежуточная страница до перехода к следующей загружалась полностью включая изображения (то есть до тех пор, пока браузер не демонстрировал собственными средствами индикации, что страница полностью загружена). Для перемещения между страницами я использовал наиболее быстрый способ навигации (обычно горячие клавиши). Этот тест демонстрирует, насколько эффективно браузер использует кэширование для ускорения браузинга.
Замечание: Я не тестировал плагины вроде Java или Flash, так как они являются внешними, не относящимися к браузеру, программами. Они гораздо больше зависят от номера своей версии, ограничений памяти ОС, каковые, разумеется, находятся вне полномочий браузера.
Результаты тестов
Результаты тестов приводятся в табличной форме, единица измерения всех результатов — секунда. Наилучший (быстрейший) результат выделен серым.
Браузеры под Linux
Тесты проводились на SuSE Linux 9.1 с использованием KDE (за исключением Epiphany, чьи результаты приведены для Gnome, т.к. это ее нормальная рабочая среда). Я также проверял браузеры на Gnomе, но получил заметно различающиеся результаты лишь для Konqueror'а, так что это единственный браузер, чьи результаты приведены как для Gnome, так и для KDE. Я концентрировался на основных Gecko-базированных браузерах — их существует множество. Для тестирования же были избраны Mozilla (SeaMonkey), Firefox и Epiphany, так как это два официальных релиза с Mozilla.org и официальный браузер DTE Gnome соответственно. Я не смог протестировать Galeon (один из наиболее популярных браузеров под Gnome), так как он не был доступен для той версии Mozilla, которая была установлена у меня. Однако, поскольку по сути он — лишь красивый скин для Mozilla (как и Epiphany), то его результаты должны быть схожими с результатами Mozilla. Тесты Opera 8 проводились с использованием Opera 8 beta 1, тесты Mozilla 1.8 — с использованием Mozilla 1.8 alpha 6.
Конфигурация: 800 MHz Intel Pentium 3, 256 Mb RAM.
(1) Использует предустановленный Mozilla 1.6.0
(2) Индикатор показывает, что страница загружена, еще до завершения загрузки всех картинок
(3) KDE производит предварительную загрузку некоторых компонентов
Браузеры для Mac
В основном я сосредоточился на браузерах для Mac OS X, потому что для Mac OS 9 браузеров в данный момент не разрабатывается (за исключением iCab): IE 5 больше не обновляется, нет последних релизов Mozilla или родственных браузеров для OS 9. Для OS 9 не выпускается Opera 7. Safari, OmniWeb и им подобные работают лишь на OS X. Тесты Opera 8 проделаны на техническом пререлизе 1 (technical preview 1). Тесты Mozilla 1.8 — на Mozilla 1.8 alpha 6. Тесты всех браузеров производились под Mac OS X 10.3.7 (Panther). Safari 2.0 тестировался на предварительном варианте версии 10.4 (Tiger). Я проверял остальные браузеры на Tiger лишь для того, чтобы удостовериться в корректности полученных данных — и действительно, они оказались практически идентичными результатам под Panther. Обновленная Safari 2.0 демонстрирует впечатляющее увеличение производительности в работе с CSS, DHMTL и управлением окнами. Opera 8 также показала заметное улучшение, буквально в два раза увеличив скорость обработки скриптов, работы с кэшем и уменьшив время загрузки.
Конфигурация: 400 MHz G4 (примерный эквивалент 800 MHz Intel Pentium 3), 256 Mb RAM.
(1) Предположительно, оптимизирован под конкретную модель процессора
(2) Большинство стилей не поддерживается
(3) Да, действительно 32 минуты!
(4) Beta 2
(5) 7 минут на загрузку, 12 – на рендеринг... Правда, в отличие от предшественника, поддерживает CSS2
(6) Да, действительно 35 минут! Причем часто вываливался (не хватало памяти) в процессе тестирования
(7) Переход обратно по кнопке "Back" занял 62 секунды, а после 22 страниц нарушился порядок – кнопка "Вперед" не работала
(8) Полностью некорректное отображение
(9) Тест не запустился из-за плохой поддержки JavaScript
(10) Переход назад занял вдвое больше времени, чем переход вперед
(11) Движок Safari 1.0
(12) Движок Safari 1.2
(1) Большая часть стилей не поддерживается
(2) После 15 мин. работы не хватило памяти
(3) Beta 2
(4) 7 минут на загрузку, 14 – на рендеринг... Правда, в отличие от предшественника, поддерживает CSS2
(5) Повалил всю ОС
(6) Переход обратно по кнопке "Back" занял 84 секунды, а после 10 страниц нарушился порядок – кнопка "Вперед" не работала
(7) Эквивалент 5.2 на OS X
(8) Браузер максимально удерживал в памяти 20 последних страниц – результат экстраполирован
(9) Последний официальный build для Mac OS 9
(10) Не прошел тест со всплывающими окнами
Браузеры для Windows
Тесты проводились под управлением Windows XP SP2. Internet Explorer 6 — в стандартном комплекте поставки, Internet Explorer 5 устанавливался из zip-архива; дистрибутив можно скачать с Quirks-Mode.org сайт . Каждый раз, когда я пытался запустить IE 5.5, он вываливался с ошибкой. Настройки производительности Windows установлены в автоматический режим (по умолчанию). Тесты Opera 8 проделаны на бета-версии 1 (beta 1). Тесты Mozilla 1.8 — на Mozilla 1.8 alpha 6. Я также протестировал дистрибутив Firefox от Moox, "оптимизированный" для моего конкретного процессора. Тестировался Netscape — по сути, он оказался Firefox'ом, увешанным ненужным, замедляющим браузер, мусором. K-Meleon — еще один браузер на Gecko, по слухам — быстрейший (хотя на поверку во всех задачах, кроме запуска, он оказался медленнее Firefox и Mozilla). Я также протестировал несколько старых браузеров (Netscape 4, Escape 4, Clue, Internet Explorer 5.0, Mozilla 1.0, Opera 6.03) — из чистого любопытства (кстати, интересно отметить, что IE 5.0 заметно быстрее IE 6.0).
Конфигурация: 800 MHz Intel Pentium 3, 256 Mb RAM.
(1) Использует движок Internet Explorer 6.0
(2) Браузер сворачивается в трей при нажатии; для объективности сравнения я закрывал его полностью
(3) Сдался после 10 минут попыток
(4) Внутренняя ошибка
(5) Не смог пройти тест из-за плохой поддержки JavaScript
(6) В ходе теста из кэша "добывались" некорректные страницы без картинок
(7) (8) Полностью некорректный рендеринг
(9) Спровоцировал две ошибки при запуске
(10) Проблемы с буферизацией даты/времени, необходимо модифицировать некоторые тесты
(11) Полностью некорректный рендеринг
(12) (13) Windows подгружает некоторые компоненты для большинства инсталляций
(14) Вываливается с ошибкой в ходе теста
(15) Переход вперед по просмотренным страницам, после 23-й страницы перестал работать
(16) Использует движок Internet Explorer 6.0
(17) Предварительная версия нового браузера Netscape
(18) Некоторые стили не были обработаны
(19) Проблемы с буферизацией даты/времени, необходимо модифицировать некоторые тесты
(20) Полностью некорректный рендеринг
(21) Часто портится внешний вид
(22) Неоднократно сбоил в процессе тестов
(23) Полностью некорректный рендеринг
(24) Кнопка "вперед" в компьютерном варианте недоступна, поэтому я совершил два прохода "назад"
Выводы
Нет-нет — оставлю их вам. Все зависит от того, как и для чего вы применяете браузер, а также от операционной (-ых) системы (систем), в рамках которых вы его используете. Взгляните на таблицы и определитесь, какой браузер лучше всего вам подходит.
Ну, хорошо, хорошо — получайте аналитику. Firefox и Mozilla, очевидно, оптимизированы под Linux, а Opera — под Windows. Эти оптимизации наиболее заметны, если взглянуть на время загрузки, хотя также имеется небольшая разница в организации работы с кэшем для разных ОС. Однако Opera выглядит весьма достойно при большинстве задач для любой платформы. При рендеринге страниц (CSS, изображения, таблицы) большинство крупных браузеров работает очень быстро, разница между ними мала. Но по работе со скриптами Opera явно на голову выше всех, показывая чуть ли не вдвое превосходящий конкурентов результат. К ней приближается только Safari 2.0, но он привязан к новой версии Mac OS — Tiger, в настоящий момент находящейся в стадии разработки. Opera также абсолютный победитель по работе с "Журналом" (History, кэш). На Linux Opera быстрее Mozilla и Firefox по всем параметрам, кроме времени запуска. Удивительно, но Mozilla в большинстве задач быстрее Firefox. Под Windows Internet Explorer для большинства задач столь же быстр (или быстрее), как Mozilla и Firefox, за исключением вдвое более медленной обработки скриптов. Разумеется, слабая поддержка стандартов и низкая безопасность делают его не слишком привлекательной перспективой для использования. Дистрибутив Moox Firefox медленнее стандартных Firefox, распространяемых через Mozilla.org, хотя, судя по всему, он оптимизирован для моего процессора. Заточенная под Mac версия смотрится чуть лучше, но она обеспечивает высокую скорость в одном тесте взамен заметного отставания в другом, сводя суммарную разницу к минимуму, или даже к нулю. Показатели K-Meleon и Epiphany схожи с аналогичными для Mozilla и Firefox. Новая предварительная версия Netscape Browser (основанного на Firefox), безусловно, страдала от раздутости, вызванной адд-онами АОL.
Улыбку вызывает факт, что IE на Windows замедляется с выходом новых версий в большинстве тестов. Браузеры, использующие движок IE (Maxthon или Avant), еще сильнее замедляют его, хотя Avant умудряется увеличить скорость обработки скриптов. Opera 6 была быстрее по части рендеринга простых страниц, чем Opera 7 или 8, в Windows и Linux, однако этот плюс легко перевешивался минусами в лице устаревшей и медленной поддержки скриптов, отсутствия переформатирования текста и прогрессивного рендеринга, более медленной работы с сетью и изображениями, а заодно тормозов при работе с кэшем на Mac и Linux. С другой стороны, Mozilla однозначно продвинулась далеко вперед со времен первого 1.0 релиза (который оказался, по большому счету, даже медленнее предка — Netscape 4), но ее скриптовому движку нужно еще долго догонять оный из Opera, который также не стоит на месте. И так самый быстрый скриптовый движок Opera ускорился почти вдвое в релизе 8.0. Я не принимал во внимание одну вещь (хотя она может играть значительную роль для реальных страниц) — прогрессивный рендеринг. Например, Opera 6 быстрее обработала таблицу, но до полного окончания работы ничего не показывала на экране. Opera 7 и выше обрабатывает таблицу медленнее (примерно на полсекунды), но отображает ее по мере выполнения ("прогресса"): первая часть появляется на экране, как только браузер ее обработает, а не после завершения работы над всей таблицей целиком. Следовательно, вы сможете начать изучать страницу раньше. Для страниц, которые выдаются медленными серверами (или для медленных интернет-соединений), это может заметно увеличить скорость браузинга.
Самые быстрозапускающиеся браузеры — это Konqueror под KDE (не очень часто применяется), iCab 2 и Camino, при этом Konqueror опережает всех по скорости горячего старта. Однако у него наиболее медленная реализация работы со скриптами среди всех основных браузеров для Linux, и, хотя под Gnome скорость обработки кэша немного увеличивается, тормоза при запуске перевешивают этот плюс. Медленнее Konqueror'а только Opera 6 и Mozilla 1.0, причем оба — старые релизы, которые уже давным-давно заменены куда более быстрыми новыми версиями. "Сестры" Konqueror'а, Safara 1.2 и OmniWeb, также очень медленно выполняют скрипты. IE для Mac'ов тоже не силен в этом деле и, хотя достаточно быстро загружается, для других задач слишком "нетороплив". iCab и (старый) OmniWeb 4.2 — очевидные аутсайдеры по скорости для Mac'ов, при этом OmniWeb 4.2 медленнее всего обрабатывал таблицы и CSS, а еще полностью провалил тесты на выполнение скриптов. iCab 3 умудрился показать наихудшее время обработки скриптов, потратив на это дело более получаса (в 10 c лишним раз медленнее остальных браузеров для Mac) и абсолютное наихудшее время (среди всех платформ) по работе с CSS, потратив на это дело около 20 минут. Safari 2.0 же по сравнению с Safari 1.2 сильно прогрессирует как по части скриптов, так и по части рендеринга. У iCab 3 наблюдаются здоровые улучшения в функциях обработки CSS и выполнения скриптов, но со всем остальным при этом он работает заметно медленнее. Возможно, данный факт связан с отсутствием соответствующих оптимизаций движка (т.к. проект сейчас находится в стадии закрытой бета-версии), но в него нужно вложить еще очень много работы, ибо сомнительно, что легкие оптимизации сильно улучшат ситуацию. Все браузеры, написанные на Java, очень плохо работали со скриптами: у них было множество проблем с манипуляцией строками и вычислениями. ICEBrowser, несмотря на то, что он — один из самых медленнозапускающихся, оказался, однако, чистым победителям в своем классе по всем остальным задачам благодаря наиболее совершенным среди Java-браузеров скриптовому и CSS-движкам. Clue же оказался наихудшим, провалив почти все тесты. Но по меньшей мере мне удалось заставить его запуститься.
Итоги
В общем и целом Opera оказывается самым быстрым браузером в среде Windows. Firefox не быстрее Internet Explorer, особенно по части скриптов, но если оценивать с точки зрения поддержки стандартов, безопасности и функциональности, то он лучше продукта Microsoft. В то же время по скорости Firefox еще далеко до Operа, который также предлагает высокий уровень безопасности, соответствия стандартам и функциональности. Под Linux Konqueror — наиболее быстрый вариант (судя по запуску и просмотру простых страниц) для KDE, но, как только в страницах появляются скрипты или изображения или необходимо активно использовать кнопки Назад/Вперед (а также при использовании Gnome), Opera будет быстрее, пусть даже KDE-версия стартует на пару секунд медленнее. Mozilla и Firefox в целом демонстрируют хорошую производительность, но по скорости запуска скриптов, работе с кэшем и изображениями они все еще несравнимы с Opera. Для Mac OS X наиболее скоростные варианты — Opera и Safari. Safari 2 быстрее запускается и рендерит CSS, но Opera оказывается значительно быстрее в рендеринге таблиц, запуске скриптов и работе с кэшем (особенно по сравнению с более медленным Safari 1.2). Camino загружается быстро, но в других тестах соседствует с сестренками Mozilla и Firefox в нижней части "табели о рангах". Ни Mozilla, ни Firefox, ни IE не работают на Mac'ах очень хорошо, показывая худшие, нежели в других ОС, результаты.
P.S. От переводчика
Эта любопытная статья недавно была обнаружена на просторах Internet'а (см. ссылку внизу) и, на мой взгляд, может оказаться интересной для многих читателей нашего издания. Именно поэтому я нашел время на ее перевод, а теперь представляю вашему вниманию результат. По сравнению с оригинальной версией здесь отсутствуют некоторые лишние ремарки (об исправлении результатов Opera 8 под Linux), результаты браузеров для Mac OS 9, а также малоизвестных браузеров (Dillo, Amaya, Lynx...), которые мало того, что работают через пень-колоду, так еще и не прошли корректно примерно половину тестов. Хочется выразить огромную благодарность автору, который, судя по всему, проделал колоссальную работу по тестированию и обработке результатов всей этой уймы браузеров. Вывод же, который можно сделать на основе этого большого материала, прост и однозначен (можно было бы даже вынести его в заголовок): "Ждем финального релиза Opera 8 — быстрейшего браузера на Земле"!
Марк Уилтон-Джонс, http://www.howtocreate.co.uk/browserSpeed.html
перевод с английского Николая "Nickky" Щетько, me@nickky.com
Компьютерная газета. Статья была опубликована в номере 08 за 2005 год в рубрике soft :: интернет