LINUX.ORG.RU

Сравнение производительности Qt и Cairo


2

0

Зак Русин провел сравнение производительности векторной графики в Qt и Cairo. Тест состоит из рендеринга трех сложных полигонов: text path, маленький полигон с большим количеством вершин на одной линии, огромный полигон с количеством вершин порядка 100000.

Измерялось количество кадров в секунду, использовались версии Cairo 1.2.5 (XRender и Glitz), Amanith из svn, Qt 4.3 (XRender и OpenGL) на Pentium4 3.2ГГц, 1Гб, NVIDIA 6600 с драйвером 1.0-9625.

Все тесты использовали антиалиасинг, и были предприняты усилия, чтобы поставить библиотеки в равные условия. Результаты очень интересны:

* Qt быстрее Cairo в XRender в 5-7 раз
* Qt(OpenGL) быстрее Qt(XRender) в 5-7 раз, но упирается в производительность GPU при 80000+ вершин
* Cairo(Glitz) показывает одинаковую производительность с Cairo(XRender)
* Ни Amanith, ни Cairo(XRender) не могут справится с последним полигоном в 100000 вершин.
* С большим полигоном Cairo(Glitz) отображает 0.2 кадра в секунду, а Qt переваливает за 10 fps.
* Qt(XRender) на порядок превосходит по производительности и Cairo(Glitz), и Amanith, хотя последние работают с OpenGL ускорением, а первый без него.


Выводы: Qt на голову выше других библиотек, а в OpenGL настолько быстр, что сравнивать с чем либо ещё просто нечестно.


PS от автора новости: Остается надеяться, что OpenSource позволит авторам Cairo "подсмотреть" построение тесселятора и рендерера, чтобы сократить разрыв до приемлемых значений.

>>> Подробности

★★★★★

Проверено: Shaman007 ()

а кто-то сомневался ? трольтехники иксы помогали оптимизировать. Хотя что превосходство будет таким подавляющим это конечно неожиданно. Миф об преодолении тормозов gtk включением кайры развенчан ? и еще хочется услышать комментарии г-на svu.

Syncro ★★★★★
()

На порядок -- это в 10 раз. Он действительно НАСТОЛЬКО быстр? Тогда получается, что Qt(OpenGL) в 50-70 раз быстрее, чем Cairo(Glitz) О_о

the_one
()

быстрее бы kde 4 вышел ... чтоб всю эту крутость заценить.

zort
()

кстати там в комментах хоть и баянистая, но актуальная ссылочка на бенчмарк кайры и MS GDI+ из которого можно сделать вывод что Qt уделывает (так как GDI кайра просирает всего в 3-5 раз)

Syncro ★★★★★
()


это ж какую мегасвистелку можно замутить из полигона на 100k вершин :)

в тесте конечно же несколько огорчает присутствие платформ, отличных от Linux. было бы куда забавнее посмотреть на тот-же тест но в тройке Qt4/Win32/GL vs Qt4/X/GL vs Gtk/X/GL.

// wbr

klalafuda ★☆☆
()

Остается надеяться на форк XFCE под QT. Потому что просто в кде это дикое количество кнопочек по любому поводу нервирует.

kilolife ★★★★★
()

профессиональные программисты (VS) GPL контрибьюторы ?

zort
()
Ответ на: комментарий от kilolife

в кде все кнопочки убираются:) а вот ты в гнум или хфце попробуй добавь:)

Syncro ★★★★★
()

>Выводы: Qt на голову выше других библиотек, а в OpenGL настолько быстр, что сравнивать с чем либо ещё просто нечестно.

Я всегда об этом догадывался, может быть потому, что на x86 платформе в Qt4 используется оптимизация под SIMD комманды процессора?

P.S. Что за зверь Qt4.3? - вроде только недавно вышел 4.2

anonymous
()
Ответ на: комментарий от anonymous

> P.S. Что за зверь Qt4.3?

бета, 4.2 тоже какое-то время был в бете пока стейблом был 4.1.3, как все ждали кроссплатформенный трей и новый канвас:) ...

Syncro ★★★★★
()
Ответ на: комментарий от Sikon

> Грязный пеар...

Ну конечно! Как любимый gtk+ в попке оказался, так пиар. Возьми да напиши тест сам.

anonymous
()

Так а как это влияет на отрисовку виджетов на десктопе, если конечно виджеты не на "80000+ вершин" ?

Bohtvaroh ★★★★
()

Cairo изначально был студенческим проектом (i.e. для того, чтобы сделать курсовик/дипло) - не удивительно. Плохо, что никто до сих пор не взялся его потюнить.

ps: и pango заодно бы.

//dottedmag

anonymous
()
Ответ на: комментарий от anonymous

> Cairo изначально был студенческим проектом (i.e. для того, чтобы сделать курсовик/дипло) - не удивительно. Плохо, что никто до сих пор не взялся его потюнить.

Qt тоже создавался студентами, которые пока кодили, жили за счет своих подружек. Историю знать надо.

anonymous
()

Стоит напомнить что gtk!=Cairo, это раз. И два - а где исходники теста или я что-то пропустил?

geekkoo
()
Ответ на: комментарий от Syncro

> и еще хочется услышать комментарии г-на svu.

Что именно хочется услышать? Что cairo не является гномовской технологией (посмотрите где он хостится) - и если бы не вечный NIH-синдром Троллтеха, мир опенсорца мог бы пользоваться _одной_ эффективной библиотекой? Что cairo еще вылизывать и вылизывать (достаточно посмотреть на то, что opengl версия работает со скоростью xrender-based)? Что бенчмарк немного странный, по меньшей мере (rendering of 3 complex polygons) - и к реальным задачам на десктопе имеет опосредованное отношение? Т.е. сам же мужик говорит, что он брал САМУЮ ДОРОГУЮ - что совсем не значит САМУЮ ТИПИЧНУЮ задачу (заметьте, я не утверждаю, что на типичной все будет сильно лучше или даже наоборот).

Ну дык Вы все это назовете гнилыми отмазками - и в Ваших словах будет некая доля правды;) Гном рулит совсем не потому, что он самый быстрый (кстати, у меня склероз - когда я последний раз называл гном самым шустрым?)

svu ★★★★★
()
Ответ на: комментарий от anonymous

кроссплатформенная реализация иконки в трее, до 4.2 она была только в виде хаков наподобие как в psi (для каждой платформы создавался свой класс)

Syncro ★★★★★
()
Ответ на: комментарий от svu

> Ну дык Вы все это назовете гнилыми отмазками - и в Ваших словах будет некая доля правды;) Гном рулит совсем не потому, что он самый быстрый (кстати, у меня склероз - когда я последний раз называл гном самым шустрым?)

so даже заядлые любители гнома признают, что он жудко тормозной, страшный как смерть с косой и до ужаса толстый. так почему же, действительно, гном таки рулит :-? парадок'c...

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от svu

> Гном рулит совсем не потому, что он самый быстрый (кстати, у меня склероз - когда я последний раз называл гном самым шустрым?)

Погодите, погодите! А когда это мы решили что гном рулит?
Не рулит он ниразу.

anonymous
()
Ответ на: комментарий от klalafuda

> so даже заядлые любители гнома признают, что он жудко тормозной, страшный как смерть с косой и до ужаса толстый

"Нифигассе басню сократили" (с)

svu ★★★★★
()
Ответ на: комментарий от klalafuda

>даже заядлые любители гнома признают, что он жудко тормозной, страшный как смерть с косой и до ужаса толстый.

Я не признаю, например.

Tigro ★★
()
Ответ на: комментарий от anonymous

> А когда это мы решили что гном рулит?

Вы - не знаю;) А когда решили Novell/Sun/Redhat ... можете посмотреть в архивах ЛОРа.

svu ★★★★★
()
Ответ на: комментарий от svu

> Что бенчмарк немного странный, по меньшей мере ... - и к реальным задачам на десктопе имеет опосредованное отношение?

Мне кажется, именно туда (рисование полигонов) и движется UI: рамочки, кнопочки,.. букаффки...

> Т.е. сам же мужик говорит, что он брал САМУЮ ДОРОГУЮ - что совсем не значит САМУЮ ТИПИЧНУЮ задачу

Самый простой полигон -- 11 fps Cairo, 76 fps Qt, 487 fps Qt(GL).

> Гном рулит совсем не потому, что он самый быстрый

Естественно. Он рулит /стандартизацией/ под сферического "работника офисного труда".

baka-kun ★★★★★
() автор топика
Ответ на: комментарий от svu

> Что именно хочется услышать? Что cairo не является гномовской технологией (посмотрите где он хостится) - и если бы не вечный NIH-синдром Троллтеха, мир опенсорца мог бы пользоваться _одной_ эффективной библиотекой?

так давайте же выпъем за героический подвиг Тролтехов, которые не смотря ни на что позволяют нам не пользоваться этой одной жудкой но эффективной библиотекой! amen.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от svu

> Вы - не знаю;) А когда решили Novell/Sun/Redhat ... можете посмотреть в архивах ЛОРа.

Они признали что юзеры дураки. И нужен им дурацкий DE. Вот и все. Про рулеж ни слова.

// Ty3uK

anonymous
()
Ответ на: комментарий от baka-kun

> Самый простой полигон -- 11 fps Cairo, 76 fps Qt, 487 fps Qt(GL).

Гхм. На Вашем десктопе одни только полигоны? У меня еще, знаете, изредка текст попадается...

> Он рулит /стандартизацией/

Это да.

> под сферического "работника офисного труда".

А вот это досужие домыслы;)

svu ★★★★★
()
Ответ на: комментарий от svu

> и если бы не вечный NIH-синдром Троллтеха

ну во-первых разные лицензии (GPL и LGPL, реализацию то получается надо разработчикам кайры из qt подсматривать как лучшую, но понятно, что это не возможно именно из-за лицензии). во-вторых c и c++ - разные парадигмы. Хотя в qt4 появился API напоминающий реализацию событийной модели gtk (я про on_MyButton_click()) и опять же кнопачки и новая тема теперь лучше приспосабливает qt для работы во враждебном окружении:) а gtk'шники хоть раз шли на встечу ? может делали мост из dbus в dcop ? или движок имитирующий qt настройки ? Разница, прежде всего, в том, что тролли зарабатывают на своем фреймворке.

Syncro ★★★★★
()
Ответ на: комментарий от klalafuda

> позволяют нам не пользоваться этой одной жудкой но эффективной библиотекой!

Кто говорил про жуткость? Технически она наверняка прекрасна (с такими-то результатами). Просто ей не повезло быть реализованной на неправильном языке и неприменимой вне конкретного стека технологий. Увы.

svu ★★★★★
()

Даааааа.... А сколько было восторженного визгу - cairo, cairo... Кстати, а Qt 4.3 - это хто такой?

anonymous
()
Ответ на: комментарий от anonymous

> Они признали что юзеры дураки.

А Вы считаете их Эйнштейнами?;)

> Про рулеж ни слова.

Эхх, вот чему Советская Власть хорошо учила - это читать между строк;)

svu ★★★★★
()
Ответ на: комментарий от svu

> Гхм. На Вашем десктопе одни только полигоны? У меня еще, знаете, изредка текст попадается...

эт вы про пангу, может не будем:) ?

Syncro ★★★★★
()
Ответ на: комментарий от svu

>Просто ей не повезло быть реализованной на неправильном языке и неприменимой вне конкретного стека технологий.

Вы считаете, что всё нужно писать на голом С?

Фразу про стек технологий после рабочего дня не осилил. Что это значит, если по простому?

fly-away
()
Ответ на: комментарий от svu

а причем здесь яп ? по всему выходит что qt и более полноценен (как фреймворк) и более быстр, чем gtk. Биндинги же есть и для других языков вроде джавы, питона, пхп или руби. От невозможности программировать с qt на C я думаю пострадает очень незначительная часть программистов.

Syncro ★★★★★
()
Ответ на: комментарий от Syncro

> ну во-первых разные лицензии

Лицензия каиро не запрещает использовать его в К-приложениях. Никак не ограничивает. Обратное неверно. Если бы троллтех помог разработке каиро - они прекрасно могли бы использовать его. Обратное неверно. Единственное, почему нельзя было использовать каиро совместно - потому что в стеке Троллтеховских технологий все должно уходить корнями в Куте.

> во-вторых c и c++ - разные парадигмы.

Согласен. Тем не менее - из плюсов всегда легко и приятно использовать качественный ОО код, даже если он на С.

> gtk'шники хоть раз шли на встечу ?

Извините, но если сам факт существования freedesktop.org для Вас не является таким шагом - то я большего предложить не смогу.

> может делали мост из dbus в dcop ?

Извините, но этот пример тоже против Вас. dbus - это не гномовская технология, как и cairo. Это опять же fd.o. Гном предоставил коммюнити (через fd.o) кучу софта, который не завязан на гном/gtk (ок, иногда завязан на glib - но даже заядлые кдешники соглашаются с зависимостью от него, понимая проблемы Posix C API и отсутствие аналога STL). Что предоставил коммюнити Троллтех - из того, что можно было бы использовать вне стека, основанного на Куте?

svu ★★★★★
()
Ответ на: комментарий от Tigro

>> даже заядлые любители гнома признают, что он жудко тормозной, страшный как смерть с косой и до ужаса толстый.

>Я не признаю, например.

Аналогично.

Bohtvaroh ★★★★
()

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

geekkoo
()
Ответ на: комментарий от fly-away

> Что это значит, если по простому?

В мире К все должно уходить корнями в объектную модель Куте. В мире Г есть библиотеки, спокойно живущие без gtk. (glib считайте заменой отсутствующего STL).

svu ★★★★★
()
Ответ на: комментарий от svu

> Кто говорил про жуткость? Технически она наверняка прекрасна (с такими-то результатами). Просто ей не повезло быть реализованной на неправильном языке и неприменимой вне конкретного стека технологий. Увы.

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

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от Syncro

> по всему выходит что qt и более полноценен (как фреймворк)

gtk - это только тулкит. А qt - это "раскладной стульчик, он же зонтик". Кол-во функциональности, реализованной в qt - на порядок больше - но совсем не потому, что gtk "ниасилил". Просто разные подходы. Сравнивать бессмысленно.

> более быстр, чем gtk

Надеюсь, Вы не строите Ваши умозаключения на основе одного скромного и слегка сомнительного бенчмарка?

> От невозможности программировать с qt на C я думаю пострадает очень незначительная часть программистов.

Да, пожалуй. Наверняка от необходимости программировать на плюсах - пострадает гораздо больше;)

svu ★★★★★
()
Ответ на: комментарий от Bohtvaroh

>>> даже заядлые любители гнома признают, что он жудко тормозной, страшный как смерть с косой и до ужаса толстый.

>>Я не признаю, например.

>Аналогично.

Не переживайте. Наверное, анонимус работает копирайтером.

svu ★★★★★
()

"А чё это, Пендальф, ваш Qt все рулит и рулит, а зарулить никак не может?"

:)

annoynimous ★★★★★
()
Ответ на: комментарий от svu

> В мире К все должно уходить корнями в объектную модель Куте.

что вполне естественно для компании, которая в первую очередь нацелена на конечный продукт и его сопровождение.

> В мире Г есть библиотеки, спокойно живущие без gtk. (glib считайте заменой отсутствующего STL).

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

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от geekkoo

> Ну, или специально загнутыми в нужном направлении...

у вас есть прекрасная возможность своим действительно правильным тестом восстановить пошатнувшуюся справедливость и наконец-то поставить этих зазнаек на место ;)

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от svu

>Да, пожалуй. Наверняка от необходимости программировать на плюсах - пострадает гораздо больше;)

Чем же вам C++ не угодил? Отличный язык, чуть повышенные требования к оперативной памяти, зато наследование, полиморфизм и перезагрузка операторов и функций (в особенности) очень облегчают жизнь и щадят мозг (в плане запоминания лишней не нужной информации). К тому же в КуТэ очень хороший HELP, у ГТК такого нет даже близко - то поделие сгнерированное доксигеном даже в плане восприятия не дотягивает до уровня... хотя конечно качество документации с С или С++ вообще никак не кореллирует.

anonymous
()

Охренеть, а откуда в куте тогда тормоза, или они векторность нифига не используют?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.