Я написал диаграмму, в которой отображаются финансовые данные. Производительность была хорошей, в то время как я рисовал менее 10 000 точек, отображаемых как подключенная линия, используя PathGeometry
вместе с PathFigure
и LineSegment
s. Но теперь мне нужно отображать до 100 000 очков одновременно (без прокрутки), и это уже очень медленно с 50 000 очками. Я думал о StreamGeometry
, но я не уверен, поскольку он в основном такой же, как PathGeometry
, который хранит информацию в виде потока байтов. Есть ли у кого-нибудь идея сделать это намного более результативным или, возможно, кто-то уже сделал что-то подобное?
EDIT: эти точки данных не меняются один раз, поэтому, если есть потенциальная оптимизация, сообщите мне (сегменты линий заморожены прямо сейчас).
EDIT: Я попробовал StreamGeometry. По какой-то причине создание графики занимало больше времени, но это не проблема. Рисунок на графике после рисования всех точек все еще медленнее, чем предыдущий метод. Я думаю, что слишком много точек данных для WPF для решения.
EDIT: я немного экспериментировал, и я заметил, что производительность немного улучшилась за счет преобразования координат, которые ранее были в double to int, чтобы предотвратить подпиксельные линии сглаживания WPF.
EDIT: Спасибо за все ответы, предлагающие уменьшить количество сегментов линии. Я сократил их до двух раз больше горизонтального разрешения для ступенчатых линий и не более горизонтального разрешения для простых линий, и производительность сейчас очень хорошая.