LightningChart® .NET Performance Test Results:
SampleDataBlockSeries VS SampleDataSeries
Introduction to the Test
In LightningChart® .NET v.10.1.1 a new, super-fast, line series was introduced, called SampleDataBlockSeries. The data is stored as memory blocks, which disposes old data and appends new data, easier on memory and CPU.
Since LightningChart v.1, there have been SampleDataSeries with a linear memory array.
Both series types are made for fixed-interval data monitoring, used typically in waveform visualization, e.g., medical monitoring (ECG/EKG, EEG, EMG, ExG), vibration monitoring, telemetric and data logger systems, and the audio engineering industry.
SampleDataBlockSeries rendering scientific data visualization algorithms were designed to take better benefit from GPU computation power, freeing up more CPU resources for other processes and tasks.
High-Performance Test Application
The following brief test compares these two high-performance line series in practical tests. This scientific data visualization test was performed with a standalone SampleDataBlockSeries demo application.
The application consists of a header bar, and the test application allows opening dozens of chart windows. The data rate is adjustable, starting from 1000 Hz (1000 data points/sec) for each series. Each window can be opened with a preferred series count between 10… 2000.
The data read from a .CSV file consisted of real ECG, EEG, and then random data every 3rd series.
The chart windows can be set to the ‘Sweeping’ real-time scrolling mode:
Sweeping mode window
In the following image, the main focus is on the scrolling mode. The X-axis length was set to hold 10 seconds of data. The line width was set to 1.5.
Scrolling mode window
Device Hardware & Operating System Specifications
SoC/CPU
RAM
GPU
Screen Resolution
Screen Refresh Rate
Browser
Operating system
AMD Ryzen 7 2700X
64.0 GB
NVIDIA GeForce GTX 1070
1920x1080
60Hz
Chrome version 75.0
Windows 10 64-bit OS
Performance Test Legend
The test was performed in two modes:
- CPU-saving mode
- High-FPS mode
Criteria Measured
FPS
A higher value of frames/sec. is better.
RAM Consumption
Measured in MB. A lower value is better.
CPU Load
Measured in %. A lower value is better.
Standard Deviation
Refreshes measured in milliseconds. A lower value is better and indicates a smoother data-scrolling experience, with less twitching or stuttering.
Delay in Refreshes
The delay between refreshes was measured in milliseconds. A lower value is better.
Outcomes & Results of the Test
The test results were collected in the next table and each cell was colored based on their meaning for the specific parameter.
Green = Good. Yellow = satisfactory. Red = struggling
The CPU column was left without a color as its load depends on the preferred frame rate (more about this later).
Analysis of the Test Results
By visually comparing the previous color-coded results, we can already see SampleDataBlockSeries performing significantly better than SampleDataSeries, which has more red color all over the table.
However, by looking at the following table based on the test results, it is possible to compare how many times the SampleDataBlockSeries are better than the SampleDataSeries.
- In RAM consumption, up to 8.6 times better.
- In FPS (CPU-saving mode), up to 60 times better.
- In FPS (High-FPS mode), up to 51 times better.
- In Standard deviation of refresh intervals (CPU-saving mode), up to 128 times better.
- In Standard deviation of refresh intervals (High-FPS mode), up to 167 times better.
- In longest refresh interval durations (CPU-saving mode), up to 54 times better.
- In longest refresh interval durations (High-FPS mode), up to 84 times better.
Commonly in all tests, the CPU load is lower than with the SampleDataSeries, yet keeping the refresh rate higher. Finally, we can calculate how many times more CPU efficient SampleDataBlockSeries is when we relate it to the FPS rate.
- In CPU-saving mode, CPU efficiency is up to 42 times better.
- In High-FPS mode, CPU efficiency is up to 51 times better.
Additional Test & Its Results
Out of curiosity, we can test how many 100-series we can open, so they still refresh around 30 FPS.
For SampleDataBlockSeries, we can open simultaneously 44 windows.
44 SampleDataBlockSeries windows
For SampleDataSeries, we can only open 4 windows simultaneously.
4 SampleDataBlockSeries windows
In conclusion, 11 times more windows than with the SampleDataSeries.
Further Performance Information
By using a billion data points example, it is possible to visualize up to 16 billion data points with the SampleDataBlockSeries, whereas the SampleDataSeries capacity is limited to 8 billion data points with the implemented 64 GB system memory.
Conclusion of the Test
The SampleDataBlockSeries is the optimal scientific data visualization series type to visualize scrolling/sweeping real-time data.
With very low variations in refresh intervals, it provides a smooth monitoring experience which is much better than SampleDataSeries.
Additionally, the SampleDataBlockSeries uses less RAM and CPU resources, provides a higher FPS rate and a significantly better responsiveness to user interactions.