Firefox

индекс
178,21

Firefox и Direct2D ускорение: реальный выигрыш производительности

Хочу отметить, что не смотря на то, что новость довольно старая, на хабре я не нашел о ней упоминания, не через яндекс, не через гугл.

Итак, в конце ноября Bas Schouten опубликовал в своем блоге заметку о том, что он добавил в код браузера Firefox еще один графический бекенд, для работы с Direct2D. Direct2D — это новый API, призванный заменить давным давно устаревший и выкинутый из состава DirectX DirectDraw. Он работает в Windows 7 и Windows Vista, если ваш драйвер видео карты соответствует хотябы стандарту WDDM 1.0.

Замеры скорости отрисовки популярных страниц показывают, что автор старался не зря :)
image

В той же записи есть ссылка на скомпилированный вариант Firefox с нужными патчами, и я решил посмотреть, так ли велик выигрыш от использования Direct2D.

Во первых, хочется рассказать про работу этой SVG-шки. Это что-то! Если в версии без Direct2D, как и в других браузерах, стоить увеличить хоть одну фотографию хотябы на пол экрана, все начинает тормозить, то в версии с Direct2D, даже если все 4 изображения растянуть на весь экран (1920×1200), и одно из них двигать, то загрузка процессора остается минимальной, а передвижение очень плавным.

Еще я решил погонять тест производительности peacekeeper, который тоже показывает впечатляющий прирост производительности:
image
Кстати, Google Chrome в этом же тесте оказался быстрее всего на 30%.

Что касается реальных сайтов, наконец-то хоть в одном браузере стало возможно работать с масштабом страницы != 100% и фиксированными фоновыми картинками :) Например, сайт wii.ign.com, который назывался как пример тяжелого сайта, отлично скролится при любом масштабе, в отличии от версии без аппаратного ускорения, где он просто умирает. ( к сожалению, сейчас с этой страницы пропал фон и она перстала тормозить везде :)

В общем, ждем от Mozilla включения кода в финальную версию Firefox 3.7, тем более Microsoft уже делало заявление, что в девятой версии Internet Explorer будет аппаратное ускорение через Direct2D, а в Опере, как известно, аппаратное ускорение будет в движке Presto 2.4.
+41
11 декабря 2009, 00:57
12

комментарии (67)

НЛО прилетело и опубликовало эту надпись здесь
+4
homm #
О чем конкретно речь? Слышал о возможности передать код через шейдеры, но ведь у страниц нет доступа к ним.
0
arinoki #
хо-хо)) лишь на 30% быстрее хром. вообще-то это не так уж и мало. хромоюзерам нет повода для беспокойства ^_^
+3
homm #
Увеличил масштаб страницы на одно деление колесика в хроме и на два ФФ:
Minefield 3.7a1pre: 1908
Chrome 4.0.220.1: 1416

Плюс, у хрома серьезные проблемы в таком режиме с тестом «Complex graphics».

Трепещи, пользователь хрома!
–8
arinoki #
Chrome(v4.0.249.25) Scored:
3563 Points
CPU: Intel Core 2 Duo Processor E8400
GPU: NVIDIA GeForce 8800 GTS 512MB

увеличил именно колёсиком на 2 деления масштаб. хз почему такая разница, но вот как-то так.
pic.ipicture.ru/uploads/091211/3pZK12Wfsq.png
+7
homm #
Любая разница из-за железа, естественно. У вас процессор в 2 раза мощнее моего Атлона 5200.
+1
GRuff #
а на контенте какого типа разница более всего ощутима?
графика?
0
Aux #
Графика с эффектами (включая фишки CSS3 типа бордеров круглых). Чуть подробнее в блоге оперовском — my.opera.com/core/blog/2009/02/04/vega
0
slayerhabr #
а в FF3.5.5 который в ubuntu включено по умолчанию аппаратное ускорение?
т.к. wii.ign.com при прокрутке не совершенно тормозит
+3
homm #
Тут есть 2 варианта. Либо вы пропустили два упоминания про масштаб, либо для вас реакция браузера в 1 секунду не является торможением. В прочем возможен, хотя и маловероятен вариант, что у вас компьютер в 24 раза мощнее моего и там где у меня 1 кадр в секунду, у вас 24.
+3
MikelArdRi #
Что-то у меня этот сайт на firefox 3.6 beta4 тоже тормозить не хочет :)
CPU: Intel® Pentium® 4 CPU 3.20GHz
GPU: NVIDIA GeForce 8400 GS
0
kossnocorp #
Как то так же…
0
nerezus #
У меня в опере совсем не тормозит с масштабом измененным. Гладко листает.
0
homm #
У меня счас инфаркт будет :)
Давайте для начала поймем, один ли мы сайт видим. Вот, что вижу я:

Free Image Hosting at www.ImageShack.us
+2
nerezus #
Именно этот сайт.
Опера — гладко. FF — с небольшими задержками.
WinXP. Athlon x2, 3800+.
0
homm #
У меня, кажется есть объяснение, почему может не тормозить в фф.
Если разрешение маленькое, а тем более при сильном увеличении масштаба, фон страницы не выглядывает за белый фон контента, фаерфокс делает оптимизиацию: не рисует фон вовсе и страница крутится очень плавно. Но стоит подвести к футеру, где фон выглядывает, и тормоза появляются.

Почему у вас не тормозит в Опере я не знаю, хотя в принципе тенденция, что в Опере тормозит меньше, есть и у меня.
0
romychs #
Может дело в плагинах FF? Попробуйте по вырубать лишние.
+2
SKYnv #
проверил у себя в опере, аналогично никаких тормозов и гладенько.
0
moroz1999 #
У меня старенький Athlon 2800+ и FF3.5.5, не тормозит при прокрутке. Фон на 1024 проглядывает слева всегда. Пробовал с разной величины зумом, как положительным, так и отрицательным.
Субъективно, кадров 15 в секунду выдаёт смело. Чуть меньше бывает, когда на экране показываются огромные флэш-баннеры в верхней части.
Чем прокручиваете? Может быть, какая-нибудь плавная попиксельная прокрутка включена в аддонах или настройках? Я пробовал и колесом, и просто за скроллер тянуть мышью.
0
homm #
Полосой прокрутки скроллю :) На глаз, кадра 4 в секунду, от версии фф зависит слабо.
+1
absorbb #
В линуксе ни один браузер кроме недавно вышедшего хрома не сглаживает изображения при масштабировании. Вот и причина. Причины понятны — когда-то и дрова и софтварная реализация 2д в линуксе были ужасны. Но сейчас уже другая ситуация — в хроме сглаживание работает и все быстро.
0
homm #
А ведь действительно, вы наблюдательны, в линуксе картинки не сглаживаются при масштабировании.
0
seleko #
а по-моему у меня сглаживаются…
версию и платформу сюда постил.
0
absorbb #
Ну тут не может быть никаких «по-моему». Либо сглаживает — либо нет :) Разницу не заметить сложно.
0
seleko #
сглаживает :)
+3
absorbb #
Странно это. ни в lastest trunk ни в
Mozilla/5.0 (X11; U; Linux x86_64; ru; rv:1.9.2b5) Gecko/20091204 SUSE/3.6b5-2.2 Firefox/3.6b5
подобного результата не наблюдаю.

ЗЫ: смешно, но wii.ign.com сегодня обновил дизайн — теперь нет fixed background
0
Budda40 #
Подождем пока Огнелис внедрит пропоточность для вкладок, чтоб каждая обрабатывалась отдельно. Плюс этот графический бекенд. Я думаю получим сопоставимый с хромом, в плане скорости, браузер.
Вопрос в том, что к тому моменту сделает хром?
+1
homm #
Будем надеятся, что нормальную работу с SVG :)
0
nayjest #
Ну, по скорости начальной загрузки огнелису до хрома ого-го.
–1
pens #
блин ну вот не пойму, чего реально у когото лишние10 сек решают при загрузке браузера?
+2
smmurf #
Да. Если в остальном производительность будет равна, я выберу то, чем могу начать пользоваться быстрее.
10 секунд можно простить, если понятно, ради чего.
0
DnV #
Да там секунда разница максимум. А цимес весь в куче плагинов и в том, что браузер не должен зависеть от гугла или другого интернет-гиганта ИМХО.
0
smmurf #
Когда начинается «цимес в куче плагинов», разница как раз и достигает десятков секунд.
А по умолчанию разницы нет, и даже секунду при этом оправдать нечем.
0
nayjest #
Конечно! Представьте ситуацию, что вы очень-очень спешите куда-то и вам нужно глянуть какую-то мелочь в интернетах, а браузер не запущен :)
0
Budda40 #
Он работает в Windows 7 и Windows Vista, если ваш драйвер видео карты соответствует хотябы стандарту WDDM 1.0.
т.е. большинство пользователей (ХР) не смогут оценить все прелести данной сборки, я правильно понял? Или все же…
+1
homm #
Правильно. Результаты без поддержки Direct2D в тесте peacekeeper, например, это результат той же сборки, но под XP.
0
Budda40 #
И что вообще ни как?
0
MKrivosheev #
Граждане, а где потерялся релиз Fx 3.6?! В ноябре же обещали!
0
KindDragon #
3.6 пока ещё beta 4
0
seleko #
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2b5) Gecko/20091204 SUSE/3.6b5-2.2 Firefox/3.6b5
0
seleko #
да кстати SVG работает на ура… про «тяжёлый сайт» ваще не понял в чём прикол.
+2
homm #
Ну начинается, счас у вас еще комментарии в ЖЖ будут мгновенно открываться :)
Скажите, вы картинки в SVG увеличиваете хотя бы до таких размеров, или маленькие таскаете?
0
homm #
комментарии в ЖЖ будут мгновенно открываться
Имеется ввиду «разворачиваться». Те, которые по аяксу подгружаются.
0
seleko #
конечно!
про комменты тоже не понимаю проблемы… абсолютно серьёзно.
–2
seleko #
Build platform
target
x86_64-unknown-linux-gnu

Build tools
Compiler Version Compiler flags
gcc gcc version 4.4.1 [gcc-4_4-branch revision 150839] (SUSE Linux) -Wall -W -Wno-unused -Wpointer-arith -Wcast-align -W -Wno-long-long -pedantic -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -Os -fno-strict-aliasing -fno-strict-aliasing -pthread -pipe -DNDEBUG -DTRIMMED -Os -freorder-blocks -fno-reorder-functions
c++ gcc version 4.4.1 [gcc-4_4-branch revision 150839] (SUSE Linux) -fno-rtti -fno-exceptions -Wall -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor -Wcast-align -Wno-invalid-offsetof -Wno-long-long -pedantic -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g -Os -fno-strict-aliasing -fno-strict-aliasing -fshort-wchar -pthread -pipe -DNDEBUG -DTRIMMED -Os -freorder-blocks -fno-reorder-functions

Configure arguments
--enable-application=xulrunner --prefix=/usr --libdir=/usr/lib64 --sysconfdir=/etc --mandir=/usr/share/man --includedir=/usr/include --enable-optimize --enable-extensions=default --with-system-jpeg --with-system-zlib --with-l10n-base=../l10n --enable-xft --disable-freetype2 --enable-svg --enable-canvas --disable-tests --disable-mochitest --disable-installer --disable-updater --disable-javaxpcom --disable-crashreporter --enable-startup-notification --enable-url-classifier --with-system-nspr --with-system-nss --enable-system-cairo --enable-system-hunspell --enable-libproxy
0
Argentum47 #
Это первый билд на бету5, а 3.6b5 ещё нету.
P.S. Хотя не исключено, что именно этот билд и станет 3.6b5/
+1
rOOse #
У кого тормозит в FF может просто у вас стоит general.smoothScroll = true?
У меня если стоит true то тормозит при увеличенном масштабе, а если false то нетормозит.
0
GaMBiT #
У меня стоит в true, но не тормозит. Firefox 3.5.5 Windows XP.

Что странно, этот сайт у меня летает, зато хабр при скролинге начинает тормозить!
0
Qiwichupa #
у меня хабр тормозит когда комментов больше сотни. По-моему виноват этот адовый скрипт показывающий уровни комментария. Как бы его отключить прям…
0
homm #
Мне остается только списать разницу в скорости между тем, что получилась у меня и у вас, %username%, на тормознутость видеокарт ATI в 2D графике.
Взамен хочу предложить посмотреть скорость рендеринга при увеличенном масштабе страницы на одной из последних работ студии лебедева. По крайней мере у меня на этой странице при наведении на этажи видно только первый и последний кадр. А если водить курсором вверх-вниз, становится совсем тяжко. В версии с Direct2D, понятно дело, все плавненько, ровненько :)
+1
fenst #
да, замедляется

firefox 3.5.5
0
seleko #
в любом виде всё более чем плавненько
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2b5) Gecko/20091204 SUSE/3.6b5-2.2 Firefox/3.6b5

видимо надо благодарить интель за дравйвера :)
0
Terror #
Интересно было бы посмотреть на результаты под разными ОС. В XP и 7-ке (в отличие от Vsit-а) GDI имеет аппаратное ускорение, при условии, что драйвер видеокарты соответствует стандарту WDDM 1.1
0
ZUZ #
речь ведь идет лишь о счастливых пользователях Висты и семерки — тока в них это фишка работает :(
0
nukie #
А интересно, Direct2D это новое пришествие DirectDraw? Или просто обертка над Direct3D?
0
Terror #
Скорее обертка над Direct3D
0
Aux #
Это DirectDraw с интерфейсом в стиле Direct3D. DirectDraw заменили на Direct2D в DX8.
0
pxx #
Судя по диаграмме, википедия сопротивляется прогрессу. :)
0
pxx #
Какие-то очень странные результаты сравнения на тестах Peacekeeper'а.
1. Rendering. Почему нет разницы?
2. Social networking. Весьма странное название теста, но пес с ним. Результаты в принципе понятны, но в чем принципиальное отличие теста и соответственно результатов от Rendering?
3. Complex graphics. Ok.
4. Data. WTF? Откуда сумасшедший прирост?
5. DOM operations. WTF? Откуда прирост в 2 раза?
6. String operations. Ok.

У кого-то есть логичное объяснение?
0
homm #
Могу ответить про рендеринг. То, что результаты примерно одинаковые, это скорее недостаток теста, который по таймеру запускает обработку кадров, а как известно разрешение таймера в виндовс 17 миллисекунд. Т.е. в обоих случаях ФФ успевает отрисовывать сцену в отведенное время. Во время тестов я поглядывал на загрузку процессора, все остальные тесты грузили его примерно одинаково и более менее полностью, но в Rendering был очень хорошо заметна разница, при аппаратном ускорее он был почти свободен.
0
firstbyte #
Зашёл сейчас из-под этой сборки. В целом да, скорость прокрутки увеличилась. Включился правда ClearType, а также, при нажатии средней кнопкой мыши в свободном месте страницы (для прокрутки), не появляется круга со стрелками, а прокрутка работает.
0
absorbb #
Забавно wii.ign.com сегодня обновил дизайн — теперь нет fixed background.
Для дальнейшей фалометрии подойдет — прозумленный knotes.ru/ (тормозит он куда меньше старого ign, но… тоже тормозит (речь идет о Firefox под Windows )
+1
homm #
Тогда уж этот.
0
absorbb #
я сейчас под линуксом, но похоже, что да.
0
LXj #
Я тут немного поправил шаблон knotes.ru — он случайно тормозить меньше не стал?
0
absorbb #
Да, с тех пор как новый фон тормозит меньше.
0
vilky #
На работе в нетбуках с интегрированной видеокартой (у всех, к которым я присматриваюсь, стоит Intel GMA 950) это не должно никак сказаться?

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.