LightningChart .NET 성능 테스트 결과 :
SampleDataBlockSeries vs SampleDataSeries
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 가지 모드로 테스트 하였습니다 :
측정 기준
① 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 보다 몇 배나 더 좋은지를 배율로 비교할 수 있습니다.
일반적으로, 모든 테스트에서 CPU 부하(CPU load)가 SampleDataSeries 에서는 낮지만 새로 고침 빈도는 더 높게 유지합니다. 마지막으로, SampleDataBlockSeries 를 FPS 속도와 연계시킬 때 CPU 효율이 몇 배나 더 높은지 계산할 수 있습니다.
추가 테스트 결과
호기심으로 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) 비교표