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

StackOverflow https://stackoverflow.com/questions/2059262

Вопрос

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

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

Это было полезно?

Решение

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top