LINUX.ORG.RU

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

Спасибо тебе, добрый человек! Не зря тему в закладки кинул. Кстати, раз уж написал - есть ли аналог темы AnyColorYouLike под gtk3?

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

У меня (видать в прошлый раз криво померял, значения были ближе друг к другу):

Murrina ~3.6c
Raleigh ~4.1с
Greybird ~4.6с
Clearlooks ~ 5.2c
Owl ~5.6c

i5, SandyBridge, NVIDIA 304.43 (__GL_SYNC_TO_VBLANK=0) При тестировании частоту процессора ограничивал минимальной 1.6ГГц.

Оказалось, что скорость, в частности, зависит от размера изображений. В своей теме я старался делать png-изображения минимального размера (~1x1, плюс бордюры где нужны), время было ~6.4с. После увеличения размеров до ~16x16 время снизилось до ~5.1с. Так что возможно, что при желании существующие темы можно заставить работать быстрее.

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

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

У меня получилось, что конкретный размер не имеет значения. Важно лишь, чтоб размер изображения был в 1-2 раза меньше минимального размера элемента интерфейса.

Например, для ProgressBar размером примерно 24x300px максимальная производительность была при квадратных изображениях 8x8px и 16x16px (я смотрел только степени двойки). Использование неквадратных размеров типа 16x64px и 16x32px показало замедление. Так что имеет смысл смотреть лишь высоту таба, а она практически всегда составляет одну строку, т.е. в районе 25-40px.

Кроме того, максимально эффективный размер картинки не превышает определённых границ. Например, скорость рендеринга выпадающего меню (размером примерно 250x250px) в ComboBox максимальна при размере изображения в 32x32px, а при отклонении от него увеличивается (см. ниже). Причём значения мерялись 3-5 раз и разница между 11.5 и 11.7 - это НЕ погрешность.

размер        время рендеринга
изображения   меню (1000 раз)
1             14.9с
4             12.3с
8             11.9с
16            11.7с
32            11.5с
64            11.6с
128           11.7с
256           14.7с
512           18с
1024          35с

Так что ИМХО логика проста - для меню, фреймов и фона окон - 32x32px (возможно 64x64, но надо тестить отдельно), для скролл, слайдеров и подобных - 8x8px, для табов и кнопок - 16x16px.

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

Хм.. Интересно. Попробую на досуге перерисовать все картинки и сравнить скорость рендеринга.

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