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 ()

Ответ на: комментарий от annoynimous

>> так то твои посты наверняка. неужели ты думаешь что для нас, it-шников, не психиатров, представляет интерес твой случай запущенного треположества? >нет такой болезни. не сдал, садись, два :)

"Как это: жопа есть, а слова нет?"

Кстати, эта бредовая риторика, бессмысленные наезды на KDE и неизменный смайл после тупых фраз вам никого не напоминает?

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

>Капец, теперь осовобождение памяти это костыль? Тебе лечиться надо.

Поколение жабы...

Хотя лору сборщик мусора не помешал бы - вывозить на свалку всяких QTненавистников-красноглазо-гномосеков.

blaster999 ★★
()

Мда. Стоит сутки провести вдали от компа - и такая .. эээ "френд-лента" организуется - прям жуть. Я извиняюсь перед теми, кому не имел возможности ответить - но беседа ушла далеко вперед со вчерашнего вечера (и конструктивная ее часть как-то слегка подувяла ИМХО), так что бОльшая часть вопросов так или иначе освещена моими соратниками. Разумеется, если кто-то настаивает именно на МОЕМ ответе - разумеется, я отвечу;)

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

> Кстати, эта бредовая риторика, бессмысленные наезды на KDE и неизменный смайл после тупых фраз вам никого не напоминает?

Невнимательный мой ученик! Я не наезжаю на КДЕ - я им не пользуюсь. Ну то есть вообще. Мне просто нравятся его адепты, которые неизменно бурно реагируют на любое его упоминание - когда капая слюной, а когда - брызжа.

Вы здесь все: бурные, нервные, но чаще - смешные.

За сим - кланяюсь :)

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

geekoo, спасибо, на этом можно сварганить нормальный тест, а то количество кутешных инклюдов просто поражает :-p

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

> Кстати, эта бредовая риторика, бессмысленные наезды на KDE и неизменный смайл после тупых фраз вам никого не напоминает?

Напоминает - это Skull.

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

>>Капец, теперь осовобождение памяти это костыль? Тебе лечиться надо. >Поколение жабы...

Да не, тот анонимус правильно сказал что для простых текстовых таблиц Qt сотворила подлость если нужно их постоянно ресайзить ибо тогда приходится перед ресайзом удалять все элементы (::clear() кстати разве не чистит память?), либо писать более экономичную обработку ресайза чтоб удаляла/добавляла только нужное. Вообще по идее подход нормальный - создал элемент, так блин отвечай за него, не забывай и т.д. ... а то потом наклепают софта с надеждой что платформа все сама будет делать, к этому привыкают и потом начинаются блин темы по типу "течет память в файрфоксе... что делать"

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

>> А в чем проблема-то была?

> А проблема вот в чём. В реальности таблицы обычно динамические. Они часто перерисовываются и имеют непостоянное число строк и столбцов. И вот тут настаёт сипец. Потому что если память, выделенную через new QTableWidgetItem, самому не освобождать, она начинает течь. И это ПРЕКРАСНО ВИДНО, если смотреть память, используемую приложением. Она неуклонно растёт при каждой перерисовке таблицы. Значит, надо предусматривать костыль, её освобождающий. Тебе это нравится?

еще один дурак
а что в С память уже сама освобождается ? задача стояла сделать динамическую таблицу ? кто тебе сказал что память не будет освобождаться, типа gtk в голову ударила ?


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

> Не вижу никаких противоречий. Гномофилы разговаривают на языке разума, а кедовладельцы обычно либо слюни пускают, либо пену.
> annoynimous

Я вижу в этом топике, что ты разжигаешь тупой флейм (+ "пускаешь слюни" ?)
У таких как ты это никак не связано с использованием Gnome или KDE. Это просто низкий уровень интеллекта и высокий уровень комплексов неполноценности. C возрастом обычно проходит.

> Захочет ее левая нога завтра сделать библиотеку платной - и КДЕ рухнет, как карточный домик. Он про это говорил, но вы же, как всегда, не слышите.

Мы слышым что ты и он совсем не понимаете о чем говорите. Для начала прочитай GPL, и постарайся понять что там написано, узнай что такое fork. И больше такую ахинею не неси.

В нагрузку открою тайну - между KDE и Trolltech есть контракт - что в случае если Trolltech не будет работать над GPL QT, KDE получит QT под BSD лицензией в нагрузку к GPL лицензии, которую и так имеет.

szh ★★★★
()

Этот флейм на N страниц позорит linux.org.ru да и все Славянское Linux Community. Вместо того чтобы обсуждать какие-то технические детали, генерировать новые идеи, делиться опытом, рождать то, что можно цитировать и переводить на английский - вы обливаете грязью друг-друга, соревнуясь в знании грязных эпитетов. Ну используете вы Gnome/KDE, ну и используйте дальше, если вас все устраивает. Зачем кого-то переубеждать? Тем более в такой грязной форме. Вам что от этого легче? Вы умнее от этого?

2006 год, а все тоже самое!

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

>Этот флейм на N страниц позорит linux.org.ru

По-моему, говорить, что флейм позорит ЛОР, это все равно, что "грязь позорит грязелечебницу". Вот придет на ЛОР anonymious, обольет всех грязью, поорет, побрызжет слюнями и уйдет спокойно восвояси. И больше не беспокоит его маленький пенис, прыщи и запах изо рта. Психологическая разгрузка :)

И хорошо, что флеймят! А то я представляю, что бы они наделали, если бы вместо флейма, скажем, писали документацию...

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

>Этот флейм на N страниц позорит linux.org.ru да и все Славянское Linux Community. я-бы не обобщал.

>2006 год, а все тоже самое! Возможно даже хуже.

Есть высказывание - НТП в сфере ИТ это соревнование между программистами, которые пишут софт, которым смог бы пользоваться любой идиот, и природой, которая плодит все более тупых идиотов и неизменно побеждает.

Если переложить это на ситуацияю с ЛОР, то "нет причин для беспокойства" .

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

А чем идея увидеть 100000 вершин отображаемых Cairo отлична от идеи увидеть 3D игру на Cairo? Нет принципиальной разницы.

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

>А чем идея увидеть 100000 вершин отображаемых Cairo отлична от идеи увидеть 3D игру на Cairo? Нет принципиальной разницы.

А давайте вместо монитора подключим принтер и поиграем в старкрафт! Тоже принципиальной разницы нет - устройство вывода...

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

> Всё верно с точки зрения коммерсов: чем проще программа и меньший функционал она даёт - тем меньше головняка с техподдержкой. Корпорациям всегда было начхать на удобства конечных пользователей. :)

Каковой факт доблестно из года в год подтверждает M$, поддерживает Новель с КДЕ и даже священная Слака - и та подвержена этому безумию ;)

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

Ну раз на то пошло - давайте посчитаем за сколько времени распечатаются листы со 100000 вершин на лазерном и струйном принтерах :)))

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

> QPrinter prn; if (prn.setup(this)) { QPainter p(&prn);

Эх, они бы ещё Postscript нормальный выгоняли. А то ошибок с кернингом и трекингом при включении шрифтов - уйма. Это единственное, что меня дико бесит в Qt. :(

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

> Долго не искал:...Packager: Red Hat, Inc.

Видно, мультиков много запихали. У меня k3b-0.12.7-1.0.fc3.kde 9 МБ.

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

>А проблема вот в чём. В реальности таблицы обычно динамические. Они часто перерисовываются и имеют непостоянное число строк и столбцов. И вот тут настаёт сипец. Потому что если память, выделенную через new QTableWidgetItem, самому не освобождать, она начинает течь.

Гон.

Слегка видоизменил предыдущую программу:

for (unsigned i = 1; i <= n; i++)
    for (unsigned j = 1; j <= n; j++)
        ui.table->setItem(i-1, j-1, new MyItem(QString().setNum(i*j)));

где MyItem унаследовал от QTableWidgetItem. В деструкторе пишу:

MyItem::~MyItem(){
    qDebug(qPrintable("MyItem dtor, text: " + text()));
}


Теперь делаю ui.table->removeRow(0);
Что мы видим на стандартном выводе?

MyItem dtor, text: 1
MyItem dtor, text: 2
MyItem dtor, text: 3
MyItem dtor, text: 4
MyItem dtor, text: 5
MyItem dtor, text: 6
MyItem dtor, text: 7
MyItem dtor, text: 8
MyItem dtor, text: 9
MyItem dtor, text: 10

Внимание, вопрос: почему вызвались деструкторы?

MYMUR ★★★★
()

Гномники такие злые потому что у них есть реестр.

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

> Эх, они бы ещё Postscript нормальный выгоняли.

Так вроде лечили, а в 4.1 font embedding добавили...

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

> воооо! поэтому всем Fox-toolkit!!!

Лучше сразу повесится. :)

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

> Капец, теперь осовобождение памяти это костыль? Тебе лечиться надо.

Костыль. Потому что в Qt3 этого не надо было делать, Qt справлялась сама. А в Qt4 перестала справляться, теперь мне надо заниматься этим самому. Это не прогресс, это регресс.

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

>> OpenOffice -- это не gnome-приложение,

> Деее? А гноме-вфс нафиг ему тогда? С какой точки начинается Гном, короче? :)

1. В пакете OpenOffice.org с сайта OpenOffice.org есть и gnome integration, и kde integration, и suse integration. Посоветуете этим троим подраться между собой за право считать OOo своим приложением?

2. Покажите, где на сайте openoffice.org написано, что OOo - гномово приложение.

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

>> Капец, теперь осовобождение памяти это костыль? Тебе лечиться надо.

> Костыль. Потому что в Qt3 этого не надо было делать, Qt справлялась сама. А в Qt4 перестала справляться, теперь мне надо заниматься этим самому. Это не прогресс, это регресс.


и сколько раз нужно повторить что gtk уродует мозг ?
в Qt4 этого также не надо делать, Qt справляляется сама.

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

> Никто не отрицает, что у Cairo могут быть (и, наверное, есть) проблемы, в том числе с производительностью. Так это эфолюция: Cairo пока еще растет "по фичам", т.е. в ширь, а на этом этапе производительность - вторично.

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

Qt4 откровенно порадовал. С удовольствием гляну на KDE 4, когда появится релиз.

P.S. А Кнут тут, вообще, не причем. Лучше не трожь его :)

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

> Так гномеры - ребята, которые Линукс используют (на работе, дома и т.п.). Люди интеллигентные и вежливые :) А кдеешнеги - пионеры, у которых основной десктоп - винда, а линуксом они перед одноклассниками/одноклассницами понтуются, типа, "позырьте, как у меня все круто, ярко и переливается. То-то же! Это потому, что я - хакир!". А теперь они вообще в экстазе бьются, нашли подтверждение "тестами".

Типичный бред обпившегося гнома. Фсат. Школьнеги сидят в fluxbox, elilwm и прочих плтсанских WM, KDE в их среде не котируется.

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

> Напоминает - это Skull.

Аргументы "бредовой риторики, бессмысленных наездов на KDE и неизменный смайл" как обычно, не дождёмся? Бойся, маленький и глупый анонимус! :)

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

"идея увидеть 100000 вершин отображаемых Cairo" нужна для того чтоб такие картинки http://pages.cpsc.ucalgary.ca/~isenberg/projects/hyper-mine.svg.gz не тормозили. А идея делать 3D игру на Cairo может придти в голову только тупому имбицилу, который тем более это сделать не в состоянии. Поэтому увидеть такую игру невозможно, а картинок на 100000 полно. К твоему сведенью 100000 вершин это SVG примерно на ~1.5 Мб без компресии и лишних пробелов, а эта картинка занимает 2.7 мб с удалением лишних пробелов.

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

> эта, а ваш kpdf умеет защищенные от печати pdf печатать? Или так, что троллтехи наваяли, тем и пользуется?

Чё, галочку "Obey DRM restrictions" показать болезному?

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

>Чё, галочку "Obey DRM restrictions" показать болезному?

Не показывай - это не по ХИГу, еще пену изо рта пустит...

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

> Не ясна. Линукс не был средой для десктопов, он начинал с серверов. А Кы-Ды-Йе успешно свое десктопное место под солнцем просрало :)

Неужто гному??? То-то я в Германии живу и один KDE на десктопах вижу, никакого, прости господи, гнома :) Ну, за исключением винды, конечно.

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

Ну вот и дождались, сам ты своим постом и подтвердил.

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

на оптероне 275 у меня нигде не тормозит, а на 400 пентиуме тормозит везде безбожно. А всякие идиоты говорят что производительность нафиг не нужна. Если на Pentium4 3.2ГГц Qt показывает 10 фпс, то на портативном устройстве это будет уже 0.5 фпс.

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

> 1. В пакете OpenOffice.org с сайта OpenOffice.org есть и gnome integration, и kde integration, и suse integration. Посоветуете этим троим подраться между собой за право считать OOo своим приложением?

Круто. Давно зюзя стала отдельным ДЕ?

> 2. Покажите, где на сайте openoffice.org написано, что OOo - гномово приложение.

Курить http://www.gnome.org/projects/ooo/.

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

>> Он это умеет, даже если печатать запрещено. Надо только пересобрать с соответствующей правкой.

> О, исходнички править... :) А как же оснровная масса быдлодомохозяек? Переживут?

Они же вроде основная целевая аудитория гнома?

Далее. У меня в слаке "Obey DRM limitations" есть и работает. Ты, видимо, гентушник, да? Ну, ССЗБ. О нормальных людях заботятся разработчики дистрибутива, а гентушникам надо на каждые грабли наступить эксклюзивно. Удачи, первопроходцы.

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

>Ты, видимо, гентушник, да? Ну, ССЗБ. О нормальных людях заботятся разработчики дистрибутива, а гентушникам надо на каждые грабли наступить эксклюзивно. Удачи, первопроходцы.

Ну вот этого не надо. У меня тоже gentoo, и там с отключением этого DRьMа все просто, как 2 байта переслать. Никакой правки сырцов, даже USE флаги менять не надо. И, в отличие от всяких убунт с федорами, поддержка MP3 не отрезана ржавым ножом, и не надо всякие дополнительные репозитории подключать, чтоб просто послушать музыку.

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

> Далее. У меня в слаке "Obey DRM limitations" есть и работает. Ты, видимо, гентушник, да? Ну, ССЗБ. О нормальных людях заботятся разработчики дистрибутива, а гентушникам надо на каждые грабли наступить эксклюзивно. Удачи, первопроходцы.

А джентушникам?

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

> кстати, граверман или что там сколько на диске занимает? Неужели меньше?

Меньше. Если б он при своей импотенции ещё и больше места занимал, чем K3b, это вообще сипец был бы.

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

>> А реально коммерческая свиста идет вместе с аэрой, которая всех зарулит?

> Нет, "свиста" - женского полу и без яиц ни на что не годится.

А типа гном особенно хорош для приготовления глазуньи?

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

> Когда сами голословно орут "QT - тормоз", то это нормально. Когда тесты (которые можно повторить у себя дома) показали обратное, то это- провокация. Логика - супер!

гномы - это мифические человекоподобные существа, у которых всё иначе. В том числе и логика.

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

> Долго не искал:

Это со всеми языками? И всё равно у слаки в 2 раза меньше (и притом с dev). Уж даже не знаю, что шляпники туда напихали.

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

> хе-хе, кто же форк тянуть-то будет, коль сами ничего, кроме морд писать не умеем? Нет, сдохнет КДЕ, если тролли сменят курс.

Qt уже сейчас настолько мощна, что может обеспечить безбедное процветание и развитие KDE в течение нескольких лет. Если надо будет править баги или закрывать дыры - KDEшники справятся сами. А за эти несколько лет гарантированно найдётся тот кто потянет форк дальше. Так что твоё бессильное злопыхательство вызывает только смех.

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