Является ли рендеринг множества повторяющихся изображений более или менее производительным, чем использование кистей в WPF? - PullRequest
6 голосов
/ 13 января 2010

Приложение, над которым работает наша компания, в настоящее время отображает множество прямоугольных фигур с градиентами для рисования плиток. Появилась внутренняя дискуссия, которая поставила вопрос о производительности. Эти плитки имеют размер около 100 на 200 пикселей и имеют градиентный оттенок красного, желтого или зеленого цвета. В любой момент времени на экране может быть до 100 таких плиток. Будет ли для нас более эффективным создать изображение для каждого (красный, желтый, зеленый) и повторить его при необходимости, или было бы лучше для нас продолжать рисовать их, используя стандартные кисти WPF?

РЕДАКТИРОВАТЬ: Чтобы уточнить, кисть градиента, который мы используем, является LinearGradientBrush.

Ответы [ 2 ]

1 голос
/ 05 марта 2010

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

1 голос
/ 13 января 2010

Единственный способ выяснить это - попробовать оба способа и измерить эффективность каждого подхода.

Вам нужно добавить код для измерения времени цикла рендеринга и записать результат в файл, а затем выполнить перерисовку 1000 (или даже 100 000), чтобы получить реалистичную фигуру.

У меня такое чувство, что LinearGradientBrush будет быстрее, чем загрузка изображения (даже из ресурсов), но я хочу оказаться неправым.

...