We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date

Chart Paint Speed.

Hi,

I have a line graph that usually has about 5-8 chart series, each series having about 1500-2000 data points (X axis is DateTime and Y axis is double).

When I used syncfusion to render this data, it takes about 1 to 2 second to paint, which is too slow for our interactive use. Is this a normal behavior to be expected?


I am hoping to get the chart to render faster, but I'm not sure whether it is the problem with my data structure, or that Syncfusion is not suited for that much amount of data.

If it is possible to squeeze out more speed for my chart, please help.



More information,

- I have multiple Y axis in the chart. Range or each axis is set/reset before each use.
- Few striplines are used, it is removed/added before each use.
- We have data with more that hundreds of thounsands points. So what we did is we maintain our own scrollbar. Our ChartSeriesModel only holds the data points that are visible in the chart. When the scrollbar change we populate the SeriesModel with only data that are visible in new range and raise ListChange event of type 'Reset'.
- The bottle neck is not at the data point populating code; I have already timed that part.

Any suggestion is appreciated.

3 Replies

RF Rashidha F Syncfusion Team May 28, 2007 07:04 PM UTC

Hi Pisin,

Thanks for using Syncfusion Products.

You can able to acehive your requirements using Essential with the following condition.

Able to improve the chart performance using the following property settings in chart control.

* ChartSeries.EnableStyles: Point Symbols and Point Text will not be visible if set to false.

* ChartSeries.Style.DisplayShadow: This is set to true by default. Turning it off means, your lines will not have shadows (and hence will be rendered faster).

* ChartControl.ImprovePerformance = true;- Improve the performance of the chart control.

* ChartControl.Indexed : Setting Indexed to false speeds up the Chart. This is not a choice for making the Chart faster. If you don''t need a Indexed/Positional Chart, you must set this property to false.

* ChartControl.CalcRegions: This property controls Tooltips and AutoHighliting. If this value is set to false, these features will not work.

* Turned off gradients.

Please take a look at the attached sample.

http://websamples.syncfusion.com/samples/Chart.Windows/F61488/main.htm

Let me know if this helps.

Regards,
Rashidha.


PB Pisin Bootvong May 28, 2007 11:16 PM UTC

Thank you very much, you saved my day!!

By Disabling ChartControl.CalcRegions, ChartSeries.EnableStyles and enable ChartControl.ImprovePerformance, the chart render speed has vastly improve, more than factor of ten.

I can understand the trade off that I have to make when disable ChartSeries.EnableStyles or ChartControl.CalcRegions. But I don't understand the effect of ChartControl.ImprovePerformance, regarding the code behavior. Is there any issues/differences that I have to be aware of when setting ChartControl.ImprovePerformance to true? Does it use more memory?



RF Rashidha F Syncfusion Team May 29, 2007 04:37 AM UTC

Hi Pisin,

Thanks for the update.

ImprovePerformance:- This property helps to Improves the performance of the chart when a large number of series are used.

By setting this property, it will instruct the chart to calculate the axes ranges only before painting, not at every series' adding or moving. So at large series number, performance will be improved significantly.

Please let me know if you have any more queries.

Regards,
Rashidha.

Loader.
Live Chat Icon For mobile
Up arrow icon