Pre loader

2d chart buffer structure

Welcome to the SciChart Forums!

  • Please read our Question Asking Guidelines for how to format a good question
  • Some reputation is required to post answers. Get up-voted to avoid the spam filter!
  • We welcome community answers and upvotes. Every Q&A improves SciChart for everyone

WPF Forums | JavaScript Forums | Android Forums | iOS Forums


Hi, I want to know buffer structure of 2d fastline.

I use very huge data per line.(maybe about 30,000 points/1 sec are appended to a line.)

But Memory usage is different than expected.

I use fifocapacity, and It is realtime graph.

Appending data, the memory usage increases too much.

Especially, It use more memory when drawing more lines.

For example,
Assuming one line uses 100mb, the five lines use 5000mb not 500mb.

Is it right??

  • You must to post comments

Hi there,

There are a number of questions on the forums related to memory usage in SciChart, I will list them below and also answer your question:

This fourth question is the most applicable to what you are asking.

30,000 points of double-double data requires at least 30000 * 8 * 2 = 480,000 bytes per second.

Note that FIFO Series require double the memory of standard XyDataSeries.

This is because the FIFO Buffer is circular, implemented as two pointers with Start/End indices. When we iterate over the FIFO Series, it is much faster to perform a memcopy to a cached array of size N than to resolve the circular index for each point.

So now you need at least 1MByte / Second.

So how large are the dataseries in total? Just 30,000 points? Then you should not expect large memory usage.

However if they are millions of points then this memory usage gets a lot bigger.

Please send me more information about your application (dataseries size) and I will give you a more accurate answer.

Best regards,

  • CholJin Ko
    I’m sorry to late reply. My dataseries max size is 1,800,000(FifoCapacity) and All lines append 30000 points per second. I added data with LineRenderableSeriesViewModel method.(MVVM Pattern). But It is very slow. Can I find best performance point?
  • Andrew Burnett-Thompson
    Please see my updated answer. I recommend 1: Updating to v5.3 of Scichart (v5.1 had memory leaks), and 2. Enabling the Extreme Resamplers API. If you still have problems, open a support ticket with code to reproduce and we will investigate.
  • You must to post comments

Hi CholJin Ko,

Thank you for adding the extra information (that you are using 1,800,000 points, FIFO Series).

There is a performance optimisation available specifically for FIFO charts, this is to use the ExtremeResamplers. See Enabling the Extreme Resamplers feature.

 <s:SciChartSurface s:PerformanceHelper.EnableExtremeResamplers="True"/> 

It will do two things.

  • Firstly, it will increase performance for FIFO significantly
  • It will halve the memory usage for FIFO series.

To give you an idea of the performance boost of the Extreme Resamplers for FIFO data series, please see this article: How Fast is SciChart’s WPF Chart.

enter image description here

Look at the row FIFO 10M Points. In this row, with Extreme Resamplers enabled, SciChart can draw 10 million points in a FIFO Dataseries at 55 FPS. Without it, it can draw only 22 FPS. Approximately 2.5x faster.

Make sure you have the latest version of SciChart as we regularly fix bugs in our Extreme Resamplers API.

Please let me know if this helps,

Best regards,

  • You must to post comments
Showing 2 results
Your Answer

Please first to submit.