C1 WPF FlexPivot 및 C1DataEngine의 벤치마크 성능
페이지 정보
작성자 GrapeCity 작성일 2023-02-22 14:34 조회 871회 댓글 0건본문
관련링크
은 광범위한 구현을 제공하여 다양한 기준 또는 태그를 기반으로 데이터를 필터링하는 데 도움을 줍니다. 여전히 일반적으로 간과되는 한 가지 측면은 데이터 집합이 로드되는 방식에 따라 그리드 로드 시간이 크게 향상될 수 있다는 것입니다.
이 블로그에서는 더 큰 데이터 집합을 ComponentOne .NET 6 WPF FlexPivot 컨트롤에 로드하는 수단으로 표준 System.DataTable을 C1DataEngine과 비교하는 방식을 살펴보겠습니다.
이 데이터는 로드 시간별로 비교하며, 여기에서 수집한 모든 정보는 로컬 시스템에서 수집되었습니다. 코드는 FlexPivot Explorer 내의 DataEngine 샘플에서 가져온 것이며, 자세히 살펴보려는 경우에는 여기 GitHub에서 바로 다운로드할 수 있습니다.
C1DataEngine의 배경
자세히 살펴보기 전에 일부 추가 이점과 관련하여 C1DataEngine이 작동하는 방식에 대한 몇 가지 배경 정보를 제공하고자 합니다. 스타터의 경우 ActiveX 및 [ASP.NET](http://asp.net/) Web Forms 컨트롤을 제외하고 WinForms, WPF, Blazor 등을 포함하여 당사에서 제공하는 각 컨트롤 버전 내에서 C1DataEngine을 사용할 수 있습니다.
가장 기본적인 의미로 C1DataEngine은 데이터 집합과 데이터를 반영하려는 컨트롤(그리드, 차트 또는 표) 간의 매체 역할을 합니다. 더 정확히 말하자면 C1DataEngine은 대용량 데이터 집합에 고성능 분석 기능을 전달하는 독립 실행형 .NET 라이브러리입니다. C1DataEngine이 제공하는 인메모리 캐싱 기술 덕분에 C1DataEngine을 매우 유용하게 사용할 수 있으며, 크고 복잡한 데이터 집합을 더 빠르게 추출, 변환 및 로드할 수 있습니다. 데이터가 로드되면 1초도 안 되는 시간에 이루어지는 수백만 개의 레코드 쿼리와 동일합니다. 또한 C1DataEngine은 .NET Core, .NET Framework, .NET 5 및 .NET 6에서 사용할 수 있습니다.
성능 결과
배경 정보는 충분히 설명드렸고 이제 성능에 대해 알아보겠습니다! WPF FlexPivot 컨트롤로 작업 시 표준 System.DataTable을 사용할 때와 C1DataEngine을 사용한 데이터 집합 로드를 어떻게 비교할 수 있을까요? 로드된 많은 레코드별로 비교 결과를 나누어 보겠습니다.
100,000개의 레코드가 로드된 WPF FlexPivot 컨트롤은 다음과 같습니다.
다음 표에서는 System.DataTable 및 C1DataEngine 개체를 WPF FlexPivot 그리드에 로드하는 경우 시간 성능을 설명합니다.
| Row Count | Load-time (seconds) |
System.DataTable | 100,000 | 2.17 |
| 500,000 | 10.74 |
| 1,000,000 | 24.39 |
C1DataEngine | 100,000 | 0.26 |
| 500,000 | 0.35 |
| 1,000,000 | 0.60 |
| 5,000,000 | 2.24 |
시간 성능 경쟁에서 C1DataEngine을 통합하면 표준 베어본 System.DataTable 구현을 확실히 능가합니다. 로드 중인 데이터 집합의 규모가 커짐에 따라 System.Data.DataView 업데이트 시간은 기하급수적으로 증가했습니다. 데이터 집합이 500,000개의 레코드에서 1,000,000개의 레코드로 두 배가 되면서 업데이트 시간은 10.74초에서 24.39초로 두 배가 넘게 높아졌습니다.
이에 비해 C1DataEngine 내에서 데이터 집합을 두 배로 늘리면 로드 시간이 0.35초에서 0.60초로 2배 미만으로 영향을 받습니다. 이는 1/4초 증가한 것입니다. 재미삼아 C1DataEngine 개체를 통해 5백만 개의 레코드를 FlexPivot 컨트롤에 로드하는 시간을 테스트하고 이 결과를 위의 표 끝에 추가했습니다.
C1DataEngine은 인상적인 2.24초 만에 5,000,000개의 레코드 테이블을 업데이트할 수 있으며 샘플 크기가 5배 증가했다는 점을 고려할 때 선형 이하 시간(sublinear time) 복잡성을 보여줍니다.
지금 바로 ComponentOne을 다운로드하여 직접 테스트해보세요!
댓글목록
등록된 댓글이 없습니다.