Page 1 of 1

Minimum RAM Required

Posted: Mon Jul 14, 2014 7:24 am
by itz_me_cheyi
Hi there,

I would like to know how much minimum RAM required to run the Lightning Chart.

Thank you.


Re: Minimum RAM Required

Posted: Mon Jul 14, 2014 1:34 pm
by ArctionPasi
Hi Syarli,

It depends very much on what of you are doing with the chart...

A few MB is required for an empty chart.

Large heatmaps and 3D surfaces need a lot of memory, up to several GBs. Also a simple point-line series with millions of points, if you are using a complex point shape type.

RAM requirement is basically divided in to parts:
- Series data points array
- Rendering data of series and other objects

Re: Minimum RAM Required

Posted: Mon Jan 11, 2016 1:49 pm
by ahe
(sorry for resurrecting this old thread)

Hello Pasi,

do you have rough estimates on the memory requirements for each Diagram- and Series-type?

For example something like this (values are random):
PolarDiagram < ~10 MB plus 1 MB per 1000 Points in a PointLineSeries at LineSize=1
PolarDiagram < ~11 MB plus 3 MB per 1000 Points in a PointLineSeries at LineSize>1
ViewXY(IntensityGridSeries) < 12 MB plus 2 MB per 1000 Points plus 1 MB per 100 Columns

With the 32bit version of our software we're sometimes dangerously scratching the 3 GB limit, so it would be great to estimate the memory requirements before adding another series to a diagram.


Re: Minimum RAM Required

Posted: Thu Jan 14, 2016 9:12 pm
by ArctionPasi
Hi Andreas,

unfortunately that info is not easy to get, because it depends very much on series type, screen resolution, line style, point styles, line width, interpolation, anti-aliasing etc. of the series. The rendering instructions typically takes many times more memory that the series data itself.

To keep memory consumption minimal, use LineStyle.Width = 1 series that have a line, or wire frame grid. Hide the points if they are not needed, or set their style to Rectangle and apply a Solid fill in them.

If using a high-resolution IntensityGrid, use PixelRendering = true on them. Then it uses less memory.

The data point sizes can be pretty much evaluated by using
int sizeInBytes = sizeof(SeriesPoint) etc.