Page 1 of 1

How to optimize line series performance

Posted: Fri Mar 15, 2019 9:21 am
by 15683958
Hi,

Using the .Net Version=4.1.2018.5046 of TeeChart we observe slow performance of standard operations (render, zoom etc.).

As an example create 5 line series each with a million points (in a standard Winform).
The time to render the plot is improved if we use a FastLine series but not significantly.

When we compare performance with other similar Net charting software even with moderate size data sets TChart is significantly slower (i.e. takes 10s of seconds vs ms).

We would be interested in how we could optimize the performance of the plots.

Code extract
============
int numberPoints = 1000000;

Steema.TeeChart.Styles.FastLine lineSeries1 = new Steema.TeeChart.Styles.FastLine();
Steema.TeeChart.Styles.FastLine lineSeries2 = new Steema.TeeChart.Styles.FastLine();
Steema.TeeChart.Styles.FastLine lineSeries3 = new Steema.TeeChart.Styles.FastLine();
Steema.TeeChart.Styles.FastLine lineSeries4 = new Steema.TeeChart.Styles.FastLine();
Steema.TeeChart.Styles.FastLine lineSeries5 = new Steema.TeeChart.Styles.FastLine();
tChart1.Aspect.View3D = false;
tChart1.Aspect.ClipPoints = true;
tChart1.Graphics3D.BufferStyle = Steema.TeeChart.Drawing.BufferStyle.OptimizedBuffer;

// bottom axis - pipe length
Steema.TeeChart.Axis bottomAxis = tChart1.Axes.Bottom;
bottomAxis.Title.Visible = true;
bottomAxis.Title.Text = "Some data";

// left axis - property
Steema.TeeChart.Axis leftAxis = tChart1.Axes.Left;
leftAxis.Title.Visible = true;

lineSeries1.Color = Color.Blue;
lineSeries1.DrawAllPoints = false;
lineSeries1.FillSampleValues(numberPoints);


lineSeries2.Color = Color.Red;
lineSeries2.DrawAllPoints = false;
lineSeries2.FillSampleValues(numberPoints);

lineSeries3.Color = Color.Green;
lineSeries3.DrawAllPoints = false;
lineSeries3.FillSampleValues(numberPoints);

lineSeries4.Color = Color.Brown;
lineSeries4.DrawAllPoints = false;
lineSeries4.FillSampleValues(numberPoints);

lineSeries5.Color = Color.Orange;
lineSeries5.DrawAllPoints = false;
lineSeries5.FillSampleValues(numberPoints);

tChart1.Series.Add(lineSeries1);
tChart1.Series.Add(lineSeries2);
tChart1.Series.Add(lineSeries3);
tChart1.Series.Add(lineSeries4);
tChart1.Series.Add(lineSeries5);

Re: How to optimize line series performance

Posted: Mon Mar 18, 2019 7:39 am
by Christopher
Hello!

with reference to the TeeChart Examples demo which you can download from GitHub here, there are two strategies you can try, one specific to the FastLine series and the other available for all TeeChart series types:
TeeChartNetExamples_2019-03-18_08-02-52.png
TeeChartNetExamples_2019-03-18_08-02-52.png (196.92 KiB) Viewed 1284 times
and
TeeChartNetExamples_2019-03-18_08-03-15.png
TeeChartNetExamples_2019-03-18_08-03-15.png (231.94 KiB) Viewed 1284 times

Re: How to optimize line series performance

Posted: Wed Mar 20, 2019 12:35 pm
by 15683958
Thank you Christopher for your reply.

I have seen some improvement in performance after implementing your suggestions. I will discuss with my team however I think we can close this for now.

Mark