LightningChart-Net-Logo

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.

Big-Data-Visualization-for-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-of-Big-Data-Visualization-Test

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-Big-Data-Visualization

Scrolling mode window

Device Hardware & Operating System Specifications

Mid-Level Desktop PC

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

    Test-Results-of-Big-Data-Visualization-Test

    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.

    Test-results-comparison-between-Big-Data-Visualization-SampleDataBlockSeries-and-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-Sample-DataBlockSeries-windows-Big-Data-Visualization-Test

    44 SampleDataBlockSeries windows

    For SampleDataSeries, we can only open 4 windows simultaneously.

    4-SampleDataBlockSeries-windows-Big-Data-Visualization-test

    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.

    All test results are fully detailed in the performance test results document.

    Below, you can directly download the SampleDataBlockSeries demo and see the performance.