How can we improve the update performance for an XamDataChart using the following?
a. 15 ScatterLineSeries with 1 new data point added per second and data in an ObservableCollectionb. 10,000 - 40,000 data points per linec. No data point markers, no fancy line stylesd. Data is added to each series at random times during the 1 second interval (i.e., comes from a serial device) and also comes in a random order. e. These updates come in on 1 thread per data series and all updates to the observable collection are routed through the graph UI threadf. X axis is time the data was collected (i.e, cannot use LineSeries)g. The xamdataChart built-in zoom mini-map widget is located in the lower right hand corner.
This graph functions with good speed for about 1 hour and then becomes unresponssive. For example, if you zoom in when the graph has good performance, wait, and then keyboard up/down/left/right after 1 hour, it take 20-30 seconds to shift the zoomed in are by 1 keystroke.
The CPU after 1 hour was a flat 25% of a 4 core CPU machine. Our VS 2010 profiling showed that 75% or more of the time was spent in a UI rendering code (maybe due to refreshing the graph 15 times each second).
Hi,
We don't have anything new in 12.1 to address this issue, necessarily, although there may be some general performance improvements.
I've been working on a sample of implementing a custom series that can aid in your scenario that I will share as a blog post soon. Hopefully delivering you a solution out of band will help, and ellicit helpful feedback before we can get it officially inducted into the product at some point.
-Graham
Hello,
In the following blog you can find a detailed explanation on the changes made within 12.1:
http://blogs.infragistics.com/blogs/jason_beres/archive/2012/02/28/sneak-peek-what-s-coming-in-netadvantage-12-1.aspx
Please in case of future concerns do not hesitate to ask.
Sincerely,
Ekaterina
Developer Support Engineer
Infragistics, Inc.
www.infragistics.com/support
Are there changes in v12.1 that wil help?
Hello ,
I am just checking your progress on the issue.
If you require any further assistance please do not hesitate to ask.
Infragistics
BTW,
Another option for you may be to use the LineSeries with CategoryDateTimeXAxis, which can plot the data points at the exact time value that they were added. But this may not help you much performance-wise, depending on the amount of data, as the CategoryDateTimeXAxis currently assumes that you may not be providing the data sorted, so needs to perform a sort. This is something that I hope we can adjust soon (provide an option so you can indicate your data is presorted).
Depending on the amount of data you have though, you may find this performing better than ScatterLine.