0

VERY bad performance of OxyPlot LineSeries with over 2M in one plot(WPF)

mike 7 years ago updated by Gowin 4 years ago 8

Hi, I'm experiencing a VERY bad performance with oxyplot graph, specifically, 3 LineSeries with over 2M points. I'm not drawing anything fancy, the background is with solid color with no images and no markers or anything like that. The graph cannot be even scrolled properly.

I wished I was aware to this performance hit before I implemented my whole project with this library... Is there some solution with how to deal with such issues? Is there a DX wrapper ready to boost the performance?


I would also like to know why after loading all the items(over 2M)when there is no activity(such as adding, panning, zooming) the application response is very slow? are there oxyplot updates that are happening in the background? Is there some way to "lock" the graphs?


Thanks, Mike

Just to add, my WPF application becomes unresponsive even if I limit the graph display to only 7500 items ( the graph source still has over 2M items), I can see that it is busy in CalculateActualInterval and the like. As it seems, to deal with this situation I will have to write a virtualization layer on top that will expose to the oxyplot layer only 7500 items each time, all this to cover on this awfully poor performing graph lib or is it WPF to blame? Very frustrating..

Frustrating as I had the  same  development experences. Any progress achieved after you posted the problem .

Recently,  I finds there  is a github open-source project using sharpdx,  which achieves high ui response at the cost  of  giving up gdi+

The  project name  is "OxyPlot.SharpDX".

Does it can fixed performance problem with over 2M? 

Well, I  later give up the sharpdx way, because of the sharp learning curve.But if you use win8 above system,  the performances is quite nice.In fact, it can fix performance  problem  with over 2M.But it depends on the pc configure and operating system version.If using xp, the  sharpdx cannot run.

It can fix the problem if i remember  correctly. 

I try the gdi and gdi+ mixing way