Я написал диаграмму, которая отображает финансовые данные. Производительность была хорошей, когда я рисовал менее 10.000 точек, отображаемых в виде соединенной линии, используя PathGeometry
вместе с PathFigure
и LineSegment
s. Но теперь мне нужно отобразить до 100 000 точек одновременно (без прокрутки), и это уже очень медленно с 50 000 точек. Я думал о StreamGeometry
, но я не уверен, так как это в основном то же самое, что PathGeometry
выводит информацию как поток байтов. У кого-нибудь есть идея сделать это намного более производительным, или, может быть, кто-то уже сделал что-то подобное?
РЕДАКТИРОВАТЬ: Эти точки данных не меняются после рисования, поэтому, если есть потенциал для его оптимизации, пожалуйста, дайте мне знать (отрезки линий сейчас заморожены).
РЕДАКТИРОВАТЬ: я пытался StreamGeometry. По какой-то причине создание графики заняло еще больше времени, но это не проблема. Рисование на графике после рисования всех точек по-прежнему происходит так же медленно, как и в предыдущем методе. Я думаю, что для WPF слишком много точек данных.
РЕДАКТИРОВАТЬ: Я немного поэкспериментировал и заметил, что производительность немного улучшилась за счет преобразования координат, которые ранее были в двойные, в int, чтобы предотвратить сглаживание субпиксельных линий WPF.
РЕДАКТИРОВАТЬ: Спасибо за все ответы, предлагающие уменьшить количество отрезков. Я уменьшил их до не более чем в два раза горизонтального разрешения для ступенчатых линий и не более чем до горизонтального разрешения для простых линий, и производительность сейчас довольно хорошая.