ChartDirector 7.1 (C++ Edition)

DataAccelerator


The DataAccelerator class is for speeding up processing of huge data series. With the DataAccelerator, it is possible to plot a chart with 1 billion data points with programmable track cursor support. The chart can smoothly zoom out to display all data points and zoom in 100,000,000X to see individual data points. At the same time, the chart can update in real time with thousands of data points per second.

Even if DataAccelerator is not used, ChartDirector can often achieve adequate performance for up to a few million data points depending on chart complexity. That means you do not need to use DataAccelerator if you have less than 100000 data points.

Each DataAccelerator can support one x data series shared by multiple y data series. Multi-threading can be used to process the series in parallel. You can use multiple DataAccelerator objects if you have multiple x data series.

The DataAccelerator needs around 12 bytes of RAM per data value. Since the application must store the data in RAM before passing it to DataAccelerator, it needs at least 8 bytes per double precision number. That means the application would consume around 20 bytes per value, or 20G of RAM for 1 billion values.

In the current version of ChartDirector, only XY chart line layers can support DataAccelerator with the XYChart.addLineLayer3 method. Area charts can be created from line layers with XYChart.addInterLineLayer.

MethodInheritedDescription
DataAccelerator(Self)Creates a DataAccelerator object.
addDataSeries(Self)Adds a data series.
extendLength(Self)Extends the number of valid values in the arrays.
setSubsetRange(Self)Set the data range used for chart plotting.