This is a migrated thread and some comments may be shown as answers.

Very slow performance on large datasets

3 Answers 258 Views
Chart (obsolete as of Q1 2013)
This is a migrated thread and some comments may be shown as answers.
This question is locked. New answers and comments are not allowed.
David
Top achievements
Rank 1
David asked on 14 Feb 2012, 05:20 PM
I have two arrays of numbers each with 2801 values in a line chart. Using a StopWatch object to time loading it takes about 900 ms to assign the values to the series using Series.SetValues(arrayofdoublevalues). This I can live with. It takes about 45 seconds to do the initial draw or to redraw on a move or when the window is brought back from being minimized and the initial draw only happens (most of the time) if I call Refresh after assigning the data.

Is this typical behavior or is there something I can do that will speed it up?

3 Answers, 1 is accepted

Sort by
0
Ves
Telerik team
answered on 17 Feb 2012, 12:32 PM
Hello David,

RadChart will have problems with more than 1000 items on screen. While the product was designed to be easily customizable and feature rich it does not cope well with extremely busy charts. The control is targeted for casual situations which do not require a high performance solution -- usually several hundred points would fit on a normal display but with more points the details are lost anyways. There is a trade off to make between high customization and high performance and we've gone the rich features path as it is what most of our customers are interested in.

Here are some suggestions that should improve the performance in this case: Turn intelligent labels off. Actually, I would suggest turning the labels off altogether, as they would hardly be readable. Next step would be to combine several adjacent points into one e.g. take the first 5 (or so) values, calculate the average and add a single ChartSeriesItem using the average value.

Best regards,
Ves
the Telerik team
Sharpen your .NET Ninja skills! Attend Q1 webinar week and get a chance to win a license! Book your seat now >>
0
David
Top achievements
Rank 1
answered on 20 Feb 2012, 03:05 PM
The times I mentioned were with labels turned off. As you suggest they are entirely unintelligable anyway. Can you suggest a maximum number of items on screen so I can dynamically create a divisor for averaging? I suppose I will need to do a little bit more so I don't average away the outliers but this seems like a reasonable approach as the individual data points are not that important as long as they fall well within the expected norm.
0
Ves
Telerik team
answered on 23 Feb 2012, 01:07 PM
Hi David,

What's acceptable for one might be totally unacceptable for other. I would suggest starting with max number of points between 600 and 900 and adjusting it according to the performance you see and according to what you consider acceptable. You will have to take into account the client machine, where the application will run.

Best regards,
Ves
the Telerik team
RadControls for WinForms Q1'12 release is now live! Check out what's new or download a free trial >>
Tags
Chart (obsolete as of Q1 2013)
Asked by
David
Top achievements
Rank 1
Answers by
Ves
Telerik team
David
Top achievements
Rank 1
Share this question
or