Hi,
The source of the chart is a collection of series, where each series has a collection of points.
We work with live data that can reach to millions of points, The requirement is to save all the points.
It's a plot of some measuring device which reports more then 2000 values per second for each channel (series), so it's a matter of few minutes that the source collection reach 1 GB of memory.
I understand that in zoom-out there is no point to display all points, and while user zoom in I need to show the required points.
Do you have some kind of custom data type that references data on disk and only loads a subset into memory as needed?
Thanks.
Thanks a lot Andrew!
I'm going to learn this project.
Hello Dudi,
I have contacted the author of that blog post, and they have provided me with the sample project that they created for that particular blog post. I have attached this sample project to this forum thread. Note, that the attachment has three separate Visual Studio projects included. For this to work in the way that is described in the forum thread, you will want to run the ExtremeDatasetGenerator, then the ExtremeDatasetSummarizer, and then the ExtremeDataChart project. It may also be worth noting that if you do follow this completely and not as a guide, the ExtremeDatasetGenerator will create a rather massive amount of random data (roughly 15 gigabytes worth), which will take some time. The attached sample project is meant to be used more as a guide rather than literally.
Please let me know if you have any other questions or concerns on this matter.
Sincerely,AndrewAssociate DeveloperInfragistics Inc.twww.infragistics.com/support
Hi Andrew,
The article about 1 billion values seems very useful, however there are no instructions how to implement this solution.
Can you post an example of the implementation?
Thank you for your post.
Currently, I don't personally know of a custom data type that will reference data on disk and only load a subset into memory, but we don't expose one as part of our Infragistics for WPF control toolset. By the sounds of this issue, I am not entirely surprised that the memory of your XamDataChart is becoming very large, especially since you are plotting 2000 points per second per series in your chart. Rather than doing this, I would recommend that you query your underlying data source with the 2000 points and only include a sub-set of them in the source collection for the XamDataChart.
There are a couple of articles that I can recommend here as well. One of which talks about how you can get one billion points into a XamDataChart, and I believe that may help you. Here is a link to that: http://es.infragistics.com/community/blogs/graham/archive/2013/08/14/displaying-1-billion-data-values-in-xamdatachart.aspx. The other article is about performance in the XamDataChart and some of the properties that you can set to achieve better performance. Here is a link to that one as well: http://help.infragistics.com/Help/Doc/WPF/2012.1/CLR4.0/html/xamDataChart_Chart_Performance.html.
I hope this helps you. Please let me know if you have any other questions or concerns on this matter.
Sincerely,AndrewAssociate DeveloperInfragistics Inc.www.infragistics.com/support