This thread looks to be a little on the old side and therefore may no longer be relevant. Please see if there is a newer thread on the subject and ensure you're using the most recent build of any software if your question regards a particular product.
This thread has been locked and is no longer accepting new posts, if you have a question regarding this topic please email us at support@mindscape.co.nz
|
Hi I have a chart with 6 Y axes. I use the MVVM pattern and the Items source for each axis series is bound to an observable collection. I have a thread which collects 300 points every second and places them in a ConcurrentQueue. The main thread uses a timer every 25 milliseconds and checks the Concurrent queue for any available data and adds the points to the observable collection bound to the series. The max values for the y axis is 2400 and the min value -2400. The x axis min is 0 and the max for x is 45. My chart has a background and some foreground elements. It starts out ok. the chart is responsive. However, I have noticed as the total number of points go over 1000 or so, the update of the series takes about 500 ms or more for every point added. I am also tracking the position of the mouse pointer while over the chart and that is slow as well. Any ideea why the slowdown? Is there a way you can postpone the update of the chart when adding points every let's say 50 points? I have noticed that with 2 y axes(100 points) it works fine. Thanks, Peter |
|
|
Hello Peter We are currently going through the charting controls and improving the performance wherever we can. Dynamically adding data to the charts is known to be slow. The next performance enhancement that I happen to be working on will improve the performance of adding data points. I'll let you know when this improvement is available. Jason Fauchelle |
|
|
Hello Peter We have greatly improved the performance of adding data points to the chart. This improvement is available right now through the current nightly build. We are also continuing to improve the performance in other areas of the chart controls. Jason Fauchelle |
|
|
Hi Jason,
Thanks for the update. It is working much better now. Still a bit slow but I might be the reason behind it. I would like to ask you a question. How would I be able to trigger chart updates? I have noticed that if I change the max values of the Y axis by adding 1 and subtracting 1 would generate a redraw. Any other way of doing it? I actually tried it by just adding to the observable collection bound to the series. The updates happen automatically. I am supposed to plot 13500 points per 4 minutes and 30 seconds for the 6 axis and it takes about 6 minutes. It is better than before since before the chart would get unresponsive with the same dat but still I need to get the 13500 points plotted in 4.5 minutes. |
|
|
Hello Peter Currently we don't provide a way to manually trigger a redraw. Could you please describe why you need to do this? Jason Fauchelle |
|
|
Hello Peter When you say that it needs to plot 13500 points per 4 mins 30 secs, is that 13500 points in total or per axis? In a simple live data setup on my machine, I plot/render 6 points at a time which takes under 2 minutes to render a total of 13500 points. I'm bound to be doing this totally different to how you're doing it. I'll need more information about your setup such as the type of data series you are using and the type of data point model you are using. If you are able to create a simple repro that streams randomized live data, then this would greatly help us to find places we can further improve the performance or advise any performance enhancements you can make at your end. Jason Fauchelle |
|
|
Hi Jason, Better thread management on my end fixed the issue. Thanks, Peter |
|