Как стать автором
Обновить

Аппаратное ускорение для всего содержимого страницы в Internet Explorer 9

В блоге разработчиков Internet Explorer было опубликована запись о реализации аппаратного ускорения в Internet Explorer 9. Статья интересная по этому привожу здесь ее перевод (кто знает английски рекомендую прочитать в оригинале, т.к. я не переводчик).

Полное аппаратное ускорение для всего содержимого страницы

Мы рады, что другие обозреватели начали использовать аппаратное ускорение графики. Вместе различные реализации становятся доступными, сейчас самое подходящее время, чтобы поговорить о разнице между полным и частичным аппаратным ускорением.

В ноябре 2009 года, разработчики впервые взглянули на аппаратное ускорение графики в обозревателе на PDC. В марте 2010 года мы выпустили первый IE9 Platform Preview с "GPU-powered HTML5" включеным по умолчанию. В этом выпуске аппаратное ускорения применялось ко всему, к каждой странице веб-текста, изображению, фону, границе, SVG содержанию, HTML5 видео и аудио с использованием графики DirectX Windows API. С Platform Preview 3 в июле, IE9 представил аппаратное ускорение HTML5 canvas.

Понимание аппаратного ускорения

Обозреватели могут вообще не использовать аппаратного ускорения, использовать немного или использовать на каждом шаге при показе HTML страниц. На диаграмме ниже показаны основные шаги, которые использует IE9 при обработке HTML страницы.
image
Построение содержимого. IE9 ускоряет первый этап построения, использую Windows’ Direct2D и DirectWrite подсистемы. Как было показано еще в ноябре, благодаря этому получается более гладкий текст и векторная графика. Ускорение этого этапа достигается за счет использования (графического процессора), повышаетcя производительность отображения наиболее распространенных HTML элементов: текста, изображений, фона, границ.

Формирование страницы. На следующем этапе IE9 использует Direct3D, это дает потрясающую производительность при динамичных сценариях (наподобие Flying Images и FishIE Tank). Ускорение этого этапа использует одну из самых важных особенностей графического процессора: умение рисовать растровые изображения с очень высокой скоростью. Кроме того, поскольку в собственной памяти графический процессор сохраняет изображения, перестроить тяжелое изображение получается очень быстро.

Формирование вида. После того как обозреватель построил содержимое и сформировал страницу, Windows Vista и Widows 7 используют графический процессор, что бы составить окончательный вид страницы с помощью диспетчера рабочего стола. Поскольку IE9 использует DirectX и только DirectX, получается более эффективное взаимодействие между IE9 и диспетчером рабочего стола, используя меньшее количество памяти графического процессора в результате улучшается стабильность, в отличие от обозревателей, которые смешивают различные подсистемы.

Полное ускорение против частичного

С IE9, разработчики имеют полное аппаратное ускорение отображения трубопровода, который работает от разметки на экране. Исходя из блогов производителей, аппаратное ускорение реализуется и в их обозревателях в целом оно используется на одном этапе или другом, но не обоих. Написание полного аппаратное ускорение, по умолчанию, является архитектурным делом. Когда есть желание сделать продукт доступным на различных платформах, разработчикам представлен уровней абстракции и неизбежны компромиссы, что в конечном итоге влияет на производительность и уменьшает способность обозревателя достижения «родной» производительности. Достижение полных возможностей графического ускорения является крайне сложной задачей и записи промежуточных слоев и использование библиотек, вместо возможностей встроенной поддержки операционной системы делает эту задачу еще трудней. DirectX Windows это давний проверенный продукт, самые интенсивные 3D-игры DirectX добились наивысшей производительности графического процессора на основе функций предоставленных системой.

Когда вы запускаете другой обозреватель, поддерживающий аппаратное ускорение, вы заметите, что производительность некоторых тестов, например из IE Test Drive вы можете сравнить с IE9, а некоторые нет. Различия отражают разрыв между полным и частично реализованным аппаратным ускорение. IE поддерживает новые веб-стандарты, те реализации будет также полностью использовать аппаратное ускорение.

Видео HTML5 является хорошим примером, для аппаратного ускорения. На MIX10, мы показали преимущество использования аппаратного ускорения для видео. В марте IE9 сыграли два видео в HD качестве 720p на нетбуке с использованием очень слабого процессора, а другой обозреватель играл один видеоролик теряя кадры. Благодаря аппаратному ускорению всего трубопровода, видео проигрывалось полностью во время перемещения по странице и стиль композиции и их непрозрачность, с использованием стандартной веб-разметки.

Измерение графической производительности

Типичные способом для определения графической производительности является число кадров в секунду (FPS), которое показывает, сколько раз в секунду, обозреватель может обновить экран. Надо скептически относится к демонстрациям, которые показывают число кадров в секунду больше 60. Причина проста: большинство компьютерных экранов имеют частоту обновления 60 герц. Хоть и возможно сделать, что бы содержимое страницы обновлялось чаще, чем 60 кадров в секунду, но большинство пользователей все равно этого не заметят.

Более интересными, чем просто число кадров в секунду выглядят измерения, показывающие, что ваш ПК на данный момент делает. Используя Windows Performance Analysis Tools, разработчики могут видеть, что другие обозреватели с аппаратным ускорением, чтобы сделать один кадр, занимают от 20% до 500% процессорного времени больше, чем IE9. В зависимости от графических операций, необходимых для обработки веб-страницы, фактическая разница процессорного времени будет меняться. Если обозреватель пытается использовать процессорное время, для того, что бы обработать страницу чаще чем в 60 раз секунду, то это бессмысленно, поскольку разница будет не заметна, но это будет влиять на доступность вашего компьютера для других задач. Чем меньше используется процессорное время, тем больше отзывчивость системы.

Помните, настоящая производительность многогранна

Jason Weber в последнем сообщение писал, что графическое ускорение является одной из 11 основных подсистем в современном обозревателе. Использование графического процессора для отображения страниц может улучшить производительность каждой веб-страницы, а особенно это важно на графических страниц (а также демо-страницах, предназначенных для графики). Все подсистемы обозревателя должны работать быстро и индивидуально, и при этом хорошо работать вместе, чтобы сделать просмотр веб-страниц реально быстро.

Лучший обозреватель для Windows

Мы рады, что другие обозреватели начинают оптимизироваться, для платформы Windows. Использование аппаратного ускорения через Windows API, делает работу на Windows лучше, чем на других системах. После того, как вышла первая демо-версия в ноябре прошлого года, другие производители обозревателей начали работать над аппаратным ускорение с помощью семейства DirectX из Windows API. Аппаратное ускорение является важной частью в разработке высокой производительности HTML5. Имейте в виду, что не все виды аппаратного ускорения одинаковы. Сегодня IE9 это первый и единственный обозреватель, имеющий полное аппаратное ускорение для всего содержимого HTML5.

Ted Johnson, Program Manager Lead for Web Graphics
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.