|
Введение
Две наши статьи, посвящённые производительности web-браузеров, собрали немало откликов наших читателей. Но в комментариях к первой статье один вопрос поднимался чаще других: как насчёт производительности браузеров под Linux?
Действительно, хороший вопрос.
Поэтому вслед за
Проблемы Dromaeo
В предыдущих двух статьях мы столкнулись с некоторой противоречивостью, касающейся теста Mozilla Dromaeo JavaScript. В первой статье браузер Opera 10.50 показал более высокие результаты, чем четыре других web-браузера. Поскольку на победу Chrome это никак не повлияло, мы оставили сомнительно высокие результаты Opera. Фанатов Chrome это не очень обеспокоило, но фанаты Opera уверенно заявляли, что результат и должен быть таким, и не следует подвергать его сомнению. Во второй статье браузер Opera 10.60 вновь получил невероятно высокий результат в тесте Dromaeo JavaScript. Но на этот раз мы дисквалифицировали Opera из этого теста. Несмотря на то, что Opera 10.60 всё равно смог отобрать корону производительности у Google Chrome, фанаты Opera с этим не смирились, поскольку Chrome всё же показал небольшой отрыв по результатам в целом (если добавить тесты, не относящиеся к измерению скорости).
Решение дисквалифицировать результаты Opera в тесте Dromaeo JavaScript вряд ли изменило бы выбор победителя. Если бы мы не дисквалифицировали Opera, то есть признали бы браузер победителем в этом тесте, то Chrome всё равно оказался бы чемпионом по результатам в целом. Хотя победа Chrome обусловлена крайне небольшой разницей, она всё равно измеряемая. Лично мне нравится, когда подобных проблем не возникает. Но факты есть факты, и решения принимать тоже иногда приходится.
Через неделю мы получили информацию, что дисквалификация Opera является правильным шагом. Мы связались с тремя сторонами: Mozilla (автор тестов Dromaeo), Opera и Google. Ниже мы приводим выдержку из утверждения, сделанного вице-президентом Mozilla по разработке Майком Шейвером (Mike Shaver).
До недавнего времени тест Dromaeo, особенно если его рассматривать как средство измерения производительности обычных выражений, был очень подвержен оптимизациям, специально нацеленным на его слабости. Движок JavaScript, который был специально изменён для выполнения этих тестов, мог получить астрономическое увеличение результатов, если эффективно снять работу, которую он должен выполнить (и время выполнения которой измеряется).
Google привлекла наше внимание к этой ошибке и потребовала, чтобы мы исправили тест. Мы согласились это сделать, поскольку он явно не тестировал то, что нужно. Исправление вышло на прошлой неделе (между тем они добавили специальный код в V8, чтобы также "обыграть" этот момент в тесте по причинам сохранения конкурентоспособности).
Вот вам и ответ. Намерено или нет разработчики Opera "обыграли" этот тест – вопрос открытый. Без доступа к исходному коду вряд ли кто-то помимо разработчиков Opera сможет дать ответ на этот вопрос. Представитель Opera изначально сообщил нам, что технология Profile-Guided Optimizations (PGO) как раз может быть повинна в высоких результатах Dromaeo под Windows. По информации Opera, версия OS X (в которой пока нет активной PGO) не даёт столь абсурдно высоких результатов в Dromaeo. Компания не приводит результатов для версии Linux, и представитель компании так и не сообщил нам, активна или нет PGO в браузере под эту ОС. Без какой-либо информации, касающейся поддержки Linux от Opera, мы не можем точно определить, является или нет PGO причиной описанной особенности. Между тем мы по-прежнему ждём информации от разработчиков из Осло с официальным объяснением непомерно высоких результатов в тесте Dromaeo JavaScript.
Что же касается Google, то в предыдущей статье мы сообщали о высоких результатах Chrome 5.0.375.89 в Dromaeo JavaScript - намного выше, чем в дисквалифицированном браузере Opera. Mozilla и Google подтвердили, что результаты в версиях 5.0.375.70 и 5.0.375.86 некорректны. Финальная версия Chrome, которая была протестирована и опубликована (5.0.375.99) даёт результат 290.72. Google указывает, что в версию 5.0.375.70 была добавлена функция кэширования, которая и стала причиной, но в 5.0.375.99 она была удалена.
По информации Шейвера, исправление было опубликовано вскоре после выхода нашей второй статьи. Затем мы провели повторные тесты Dromaeo JavaScript в браузерах Opera 10.60 и Chrome 5.0.375.99 под нашей тестовой системой Windows 7 Ultimate 64-bit. Opera теперь получила результат 211,5, а Chrome - около 290. Ни у Mozilla, ни у Google не возникло сомнений по поводу результатов Chrome 5.0.375.99. Итак, мы разобрались в причинах дисквалификации Opera в наших тестах, но давайте перейдём к тестам браузеров под Linux.