LightningChart .NET 성능 테스트 결과 :

SampleDataBlockSeries vs SampleDataSeries

테스트 소개

LightnigChart® .NET V10.1.1에 초고속 라인 시리즈인 SampleDataBlockSeries를 도입하였습니다. 데이터가 메모리 블록으로 저장되어 오래된 데이터를 메모리와 CPU에서 더욱 쉽게 폐기하고 새 테이터 추가할 수 있습니다. LightningChart V1 부터 선형 메모리 어레이(Linear memory array)를 가진 SampleDataSeries가 있었습니다.

상기 두 가지 시리즈 모두 의료 모니터링(ECG/EKG, EEG, EMG, ExG), 진동 모니터링, 원격 측정/데이터 수집(Logger) 시스템 및 오디오 엔지니어링 산업과 같은 파형 시각화(waveform visualization)에 일반적으로 사용되는 고정 간격(fixed-interval) 데이터 모니터링을 위해 만들어 졌습니다.

과학 데이터의 시각화 알고리즘을 렌더링하는 SampleDataBlockSeries 은 GPU 연산 능력을 더 잘 활용하여 다른 프로세스와 작업에 더 많은 CPU 리소스를 쓸 수 있도록 설계되었습니다.

 

고성능 테스트 애플리케이션

다음의 간단한 실제 테스트에서 두 개의 고성능 라인 시리즈를 비교합니다. 이 과학 데이터의 시각화 테스트는 독립형 SampleDataBlockSeries 데모 애플리케이션으로 수행하였습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

애플리케이션은 헤더 막대(header bar)로 구성되며 테스트 애플리케이션으로 수십 개의 차트 창을 열수 있습니다. 각 시리즈의 데이터 속도는 1000Hz (1000 data points/sec)부터 조정할 수 있으며, 각 창은 10… 2000 사이에서 선호하는 시리즈 수(preferred series count)로 열수 있습니다. .CSV 파일에서 읽은 데이터는 실제 ECG, EEG 및 세 번째 시리즈 마다 얻은 무작위 데이터로 구성되었습니다. 차트 창은 ‘Sweeping’ 실시간 스크롤링 모드로 설정할 수 있습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Sweeping 모드 창

다음 이미지의 주요 초점은 스크롤링 모드에 있습니다. X축 길이는 10초 간의 데이터를 갖도록 하였으며, 선 너비는 1.5로 설정하였습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Scrolling 모드 창

 

 

 

 

 

 

 

 

 

 

 

성능 테스트 범례(Performance Test Legend)

 2 가지 모드로 테스트 하였습니다 :

  • CPU 절약 모드(CPU-saving mode)
  • 고수준 FPS 모드(High-FPS mode)

 

측정 기준

① FPS : 초당 프레임 값이 높을수록 더 좋습니다.

② RAM 소비량( RAM Consumption) : MB 단위로 측정되며 값이 낮을수록 좋습니다.

③ CPU 부하 (CPU Load) : 퍼센트(%)로 측정되며 값이 낮을수록 좋습니다.

④ 표준 편차(Standard Deviation) : 새로 고침은 밀리 초(milliseconds) 단위로 측정됩니다. 값이 낮을수록 좋으며, 급격한 진행이나 멈춤 없이 데이터 스크롤링이 더 유연하고 부드럽다는 것을 나타냅니다.

⑤ 새로 고침 지연(Delay in Refreshes) : 새로 고침 사이의 지연은 밀리 초(milliseconds) 단위로 측정되었으며 값이 낮을수록 좋습니다.

 

테스트 결과

테스트 결과를 다음 표에 집계하였습니다. 각 셀은 특정 매개 변수의 의미에 따라 색으로 표현하였습니다.

Green = 좋음(Good). Yellow = satisfactory(만족). Red = struggling(힘듬)

 

 

 

 

 

 

 

 

 

 

 

CPU 부하는 선호하는 프레임 속도에 따라 달라지기 때문에 CPU 열은 색으로 표시하지 않았습니다. (나중에 자세히 설명합니다)

 

테스트 결과 분석

색으로 구분한 결과를 비교함으로써 SampleDataBlockSeries는 표 전체가 붉은 색으로 되어있는 SampleDataSeries 보다 훨씬 더 나은 성능을 보이고 있음을 시각적으로 알 수 있습니다.

아울러, 테스트 결과를 바탕으로 한 다음 표에서는 SampleDataBlockSeries 가  SampleDataSeries 보다 몇 배나 더 좋은지를 배율로 비교할 수 있습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

  • RAM 소비에서는 최대 8.6배 더 좋습니다.
  • FPS의 CPU-saving mode에서는 최대 60배, High-FPS mode에서는 최대 51 배 더 좋습니다. .
  • 새로 고침 간격의 표준 편차에서 CPU-saving mode는 최대 128 배, High-FPS mode는 최대 168 배 더 좋습니다.
  • 가장 긴 새로 고침 간격 기간의 CPU-saving mode에서는 최대 54 배, High-FPS mode에서는 최대 84 배 더 좋습니다.

일반적으로, 모든 테스트에서 CPU 부하(CPU load)가 SampleDataSeries 에서는 낮지만 새로 고침 빈도는 더 높게 유지합니다. 마지막으로, SampleDataBlockSeries 를 FPS 속도와 연계시킬 때 CPU 효율이 몇 배나 더 높은지 계산할 수 있습니다.

  • CPU 절약 모드(CPU-saving mode)에서 CPU 효율성은 최대 42 배 더 좋습니다.
  • High-FPS 모드에서 CPU 효율성은 최대 51 배 더 좋습니다.

 

추가 테스트 결과

호기심으로 100 시리즈를 얼마나 많이 열 수 있는지 테스트할 수 있는데, 44 개 창을 동시에 열 수 있습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

44개 SampleDataBlockSeries 창

SampleDataSeries에서는 4 개 창을 동시에 열수 있습니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4 개 SampleDataSeries 창

결론은 SampleDataSeries보다 11 배더 많습니다.

 

기타 성능 정보

10 억 개 데이터 포인트 예제를 사용하는 경우, SampleDataBlockSeries로 최대 160억 개의 데이터 포인트를 시각화 할 수 있는 반면, SampleDataSeries 용량은 64GB 시스템 메모리에서 80억 데이터 포인트 밖에 안됩니다

 

테스트의 최종 결론

SampleDataBlockSeries는 실시간 데이터 스크롤링/스위핑을 시각화하기 위한 최적의 과학 데이터 시각화 시리즈 유형입니다.

새로 고침 간격의 변화가 아주 적기 때문에 SampleDataSeries 보다 훨씬 부드러운 모니터링 경험을 할 수 있습니다.

또한, SampleDataBlockSeries는 RAM과 CPU 리소스를 더 적게 사용하고, FPS 속도가 더 높으며, 사용자의 상호 작용에 있어 응답성이 훨씬 더 좋습니다.

모든 테스트 결과에 대한 정보를 다음 문서에서 볼 수 있습니다.

Full report available here (PDF)

 

아래의 SampleDataBlockSeries 데모를 다운 받고 성능을 확인 하십시오.

Download SampleDataBlockSeries Demo

 

LightningChart vs. SciChart (September, 2021) 비교표

See Comparison