Тестирование различных версий Internet Explorer

В "КВ" №38 в статье "Создание web-browser benchmark своими руками" я рассказал о том, как можно самому за небольшое время подготовить несколько тестов на JavaScript, чтобы проверить производительность браузеров. Тогда результаты совпали с данными Peacekeeper, что свидетельствует об их достоверности. Начиная с этого номера, я бы хотел провести некоторого рода анализ полученных результатов, поскольку целью предыдущей статьи было, скорее, программирование, чем обсуждение итогов. Сегодня мы сравним различные версии обозревателя Internet Explorer и браузеры, использующие движок IE Trident.


Trident layout engine

Trident (MSHTML) - это движок рендеринга, использующийся в браузерах линейки Internet Explorer, начиная с версии 4 (www.narthex-daemon.net/popular-layout-engines.daemon186). Trident является компонентом COM и может быть интегрирован в любое настольное приложение, написанное на C++, .NET, Delphi или любом другом языке, поддерживающем работу с объектами COM. Примерами интеграции подобного рода выступают плагин IE Tab для Firefox, браузеры Lunascape, Avant и Maxthon. Среди интересных фактов стоит упомянуть то, что Trident 4.0 из Internet Explorer 8 является первой версией движка, прошедшей тест Acid 2, а также то, что именно IE 8 впервые начал указывать название Trident в заголовке User-Agent запроса - Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0...). Физически машина рендеринга IE находится в библиотеке %SYSTEM_ROOT%\System32\mshtml.dll. Ее можно свободно использовать для своих нужд.


Internet Explorer 6

Браузер Internet Explorer 6 был выпущен сразу после выхода Windows XP в 2001 году и на протяжении 2002-2003 годов удерживал 90% рынка всех браузеров. Однако популярность не была обусловлена высоким качеством продукта - приложение имело огромное число ошибок и уязвимостей, многие из которых до сих пор не исправлены. Microsoft призывает всех отказаться от использования IE6 в пользу IE8, однако даже сейчас шестая версия является наиболее популярной. Если судить по статистике посещения моего сайта, то Internet Explorer 6 уступает лишь Firefox 3.


Internet Explorer 7

Данная версия была выпущена в октябре 2006 года и содержала наибольшее количество обновлений за 5 лет во всей истории развития браузера. Среди улучшений стоит выделить усовершенствованный движок, повышенную совместимость со стандартами W3C, вкладки, фишинг-фильтр и RSS-клиент. Кроме того, в данной версии браузера были исправлены такие распространенные ошибки IE6, как Operation Aborted, отображение элементов Select и ActiveX поверх всей страницы независимо от их стилей, отсутствие поддержки прозрачности у картинок PNG и фиксированного позиционирования.


Internet Explorer 8

Разработка новейшей версии браузера от компании Microsoft началась в марте 2006 года, а финальная версия увидела свет 19 марта 2009 года. Браузер доступен для Windows XP, Windows Server 2003, Windows Vista и Windows Server 2008 в 32- или 64-битной версии. В IE8 была усовершенствована работа с RSS, каскадными таблицами стилей, Ajax; добавлен режим приватного веб-серфинга InPrivate, набор инструментов для веб-дизайнеров и программистов, включающий профилировщик JavaScript, режим совместимости с предыдущей версией. Среди новшеств: контекстный поиск Accelerators, "живые" скриншоты страниц WebSlices, запуск каждой новой вкладки в отдельном процессе и архитектура Loosely Coupled Internet Explorer, призванная обеспечить повышение стабильности.


Пробные заезды

Сегодня в тесте принимают участие следующие браузеры: Internet Explorer 6/7/8, Maxthon 2.5 и Firefox с включенным плагином IE Tab. Тестирование проводится только с использованием созданной в предыдущий раз веб-страницы (www.narthex-daemon.net/create-browser-test2.daemon164), все расчеты и результаты представлены в таблице. Тестовый стенд: Core2 Duo T7250 2GHz, 2 Gb DDR2 RAM, GeForce 8600M GT sli. Для оценки IE 6 и 7 были использованы stand alone обозреватели Xenocode, а также приложение IE Tester, поскольку на машине установлен IE 8. В зачет шли лучшие значения за три испытания. В случае IE 6 и 7 были взяты лучшие показатели IE Tester и браузеров от Xenocode. В каждый момент времени был запущен только один обозреватель (за исключением IE Tester, который открывает каждую версию IE в отдельной вкладке).

Матрица числовых оценок
Метрика\Браузер Internet Explorer 6 Internet Explorer 7 Internet Explorer 8 Maxthon 2.5 Firefox IE Tab
Многократное обращение к элементам DOM 1533 1600 416 443 455
Многократное добавление элементов в DOM 252 240 125 134 137
Регулярные выражения 84 80 81 76 78
Конкатенация строк 9 9 9 9 9
Матрица нормированных оценок
Метрика\Браузер Internet Explorer 6 Internet Explorer 7 Internet Explorer 8 Maxthon 2.5 Firefox IE Tab
Многократное обращение к элементам DOM 0.3447 0.3598 0.0935 0.0996 0.1023
Многократное добавление элементов в DOM 0.2838 0.2703 0.1408 0.1509 0.1543
Регулярные выражения 0.2105 0.2005 0.2030 0.1905 0.1955
Конкатенация строк 0.2000 0.2000 0.2000 0.2000 0.2000
 
Суммарная оценка 1.0390 1.0306 0.6373 0.6410 0.6521


Разбор полётов

Первое, что бросается в глаза, - скорость работы интерпретатора JavaScript практически не менялась на протяжении 8 лет. Производительность DOM увеличивается к версии IE 8 (Trident 4.0) и опережает своего предшественника весьма значительно (тут вспоминаются удивленные возгласы коллег, установивших себе IE8 после его выхода). Судя по всему, после Internet Explorer 7 весь движок подвергся существенной модернизации, а не только подсистема конечного рендеринга, как можно было бы заключить, видя прогресс в области поддержки стандартов W3C.

Версия движка в IE7, по сравнению с IE6, не предлагает значительных улучшений в плане производительности, даже немного снижает работу подсистемы DOM, однако эта версия была нацелена, в первую очередь, на исправление существующих ошибок, а не на повышение быстродействия, что подтверждается результатами тестов.

Что касается Maxthon и IE Tab, то по результатам видно, что они используют зарегистрированную в системе версию Trident, поскольку оценки по каждым испытаниям весьма близки. Это и плюс, поскольку разработчик может сделать свой дистрибутив легче на 5 Mb, и минус, поскольку качество отображения страниц в Maxthon и IE Tab напрямую зависит от того, какая версия Trident доступна в системе. Кроме того, использование IE Tab в принципе невозможно под операционными системами, отличными от Windows. При проведении испытаний для IE Tab и Maxthon я видел странный заголовок User-Agent, присылаемый этими программами в теле HTTP-запроса - MSIE 7.0; Windows NT 6.0; Trident/4.0. Поначалу меня это заставило усомниться в том, что IE Tab и Maxthon используют именно ту версию Trident, которая лежит в %SYSTEM_ROOT%\System32\mshtml.dll. Однако, вспомнив о том, что Trident 4 поддерживает режим совместимости с предыдущей версией движка (Compatibility View), я убедился в несостоятельности моих сомнений. В действительности упоминание Trident 4.0 в заголовке User-Agent (см. начало данной статьи) связано именно с наличием Compatibility View, чтобы каждый клиент мог всегда установить, что запрос отправляется именно новой версией движка, хоть он и представляется как Internet Explorer 7.


Заключение

Вывод напрашивается сам собой - лучше последовать совету Microsoft и перейти со старых версий Internet Explorer на новую - более быструю, удобную, надежную, чем предыдущие. Давайте содействовать развитию интернет-технологий, не стоит сдерживать прогресс из-за наличия капризных старичков вроде IE6, значительно затрудняющих разработку новых дизайнерских и функциональных решений. Я советую всем отказаться от использования шестой версии и перейти на версию 7 или лучше 8, если существует такая возможность.

Narthex,
www.narthex-daemon.net

Версия для печатиВерсия для печати

Номер: 

46 за 2009 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!