Приложение наша компания продолжает работать в настоящее время, отображает много прямоугольных фигур с градиентами для рисования 'Мозаик'. Внутреннее обсуждение появилось, который поставил вопрос производительности. Эти мозаики составляют приблизительно 100 пикселей на 200 пикселей и являются или градиентом заштрихованный красный, желтый цвет, или зеленый. В любой момент времени могло быть 100 из этих мозаик на экране. Это было бы более производительно, чтобы мы создали изображение для каждого (красный, желтый, зеленый), и повторите его при необходимости, или для нас было бы лучше продолжить тянуть их использующий стандартные кисти WPF?
Править: Для разъяснения градиентной кистью, которую мы используем, является LinearGradientBrush.
По опыту, рисование их с помощью кистей будет иметь гораздо лучшую производительность. Накладные расходы на загрузку изображений плиток и их рендеринг велики по сравнению с рендерингом заполненных прямоугольников.
Единственный способ прояснить это - попробовать оба способа и измерить эффективность каждого из них.
Вам нужно будет добавить код к времени цикла рендеринга и записать результат в файл, а затем заставить 1000 (или даже 100 000) перерисовок, чтобы получить реалистичную цифру.
Мое чутье подсказывает, что LinearGradientBrush
будет быстрее, чем загрузка изображения (даже из ресурсов) - но я готов доказать, что я ошибаюсь.