I have implemented several xamdatacharts throughout my app. A new requirement to run my app on a tablet was given to me and basically the xamdatachart make this nearly impossible. I have 2 issues that have plagued me since I wrote the app in v11.1 then 12.2.
I have recently upgraded to 14.1 and have not seen any performance boost in the XamDataChart.
1) I have a chart using a LineSeries and a CategoryXAxis. The source is an observable collection of (DateTime, float). I attempt to simulate an EEG graph by updating that collection by index (so no FIFO). Collection is 4000 points for 8 seconds worth of data. I update the collection every 50ms so I am updating ~25 points of data plus 250 blank points to simulate a moving gap about 20 times a second. I have even used an custom implementation of an ObservableCollection that turns off notifications when I start the update and then sends a reset after all 275 points are updated vs just updating as they come in. The cpu was no different. Point is that this graph is the biggest cpu hog and on the tablet causes the UI to eventually become unresponsive. I am hoping that someone can tell me if there is a more efficient way to create an EEG simulated graph using any of the Infragistics controls?
2) I have another chart that can have N LineSeries but in this case they all use the CategoryDateTimeXAxis. Each series will have points coming in at no faster than 1/second. However, this graph show all the history. What I find is after several hours of running each point added takes longer and longer. I believe this is because the CategoryDateTimeXAxis sorts the data on every insert even though I know it is already sorted. Is there anything in the new version that I can do to optimize that xaxis type or a new way to use it to make this more efficient? I have had to limit each series to only hold 28800 (8 hours) points as beyond that the entire UI gets noticeably choppy each second. I have posted this question before about 18 months ago as a support ticket and the suggestion was to use a scatterline series instead but this had a similar jittery effect, slightly reduced, but happened all the time even when the series only had a few points in it (plus the implementation was much uglier).
Any new suggestions to optimize either of these scenarios?
empty
Hello Mike,
Thanks for clarifying. The information in this thread should prove useful to the community.
Let me know if you have any further questions.
We have a tablet with an Intel N2600 Atom processor so it is very low power. I believe it has GMA 3600 graphics chip.
Hi Mike,
Interesting. I'm curious as to what kind of graphics processor the tablet has. I haven't really seen cases where software rendering is actually better than hardware rendering but if the graphics processor is just that bad then I guess it could give you a boost. I never even thought about considering that. Nice find!
I believe I understand. Thanks.
On my desktop I do see acceptable performance. I have been working with the resolution and decreasing the number of points I plot but I do not see significant gains in performance vs. the loss of accuracy in the graph. I did find out that if I force software rendering mode I get a nice performance boost on the tablet so this may make the app acceptable.
Thanks for the help.
Mike