Это нормально, что производительность «пунктирного» линейного стиля намного медленнее, чем «пунктирного» линейного стиля? - PullRequest
2 голосов
/ 08 июля 2010

У меня есть приложение, написанное на C ++ с использованием Qt4.4.3 в Linux.

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

Мне кажется, что они не должны сильно варьироваться.

Это ожидаемое поведение или ошибка, о которой следует сообщить?

Некоторые подробности:

Я создал 100K прямоугольников, используя следующие псевдо-команды Tcl:

for {set i 0} {$i < 100000} {incr i} {
  RectCreate [Box [expr 0.001 * $i] 0 [expr 0.001 * ($i + 1)] 100]
}

Прямоугольники имеют только нарисованный контур. Я измерил время перерисовки для разных стилей линии. Например. для стиля линии «точки»:

Вот времена, когда я видел дисплей VNC:

solid line:     0.7 sec
dots:          17.0 sec
dashed:         9.5 sec
longer dashes:  5.7 sec

А на локальном дисплее:

solid line:     0.1 sec
dots:           8.9 sec
dashed:         5.7 sec
longer dashes:  3.5 sec

1 Ответ

2 голосов
/ 02 августа 2010

Графический стек слишком сложен для простого ответа. Вещи, которые могут быть «интуитивными», на практике будут работать совершенно иначе.

Не ответ, но я предлагаю вам заглянуть в этот блог, чтобы узнать о графике Qt / KDE и о том, как все не так очевидно, как кажется.

http://zrusin.blogspot.com/search?q=performance

...