[.NET 프레임웤] WPF Datagrid 성능 비교 > 시티즌 인사이트

본문 바로가기

IT&개발 정보 [.NET 프레임웤] WPF Datagrid 성능 비교

페이지 정보

작성자 GrapeCity 작성일 22-03-01 12:27 조회 1,701회 댓글 0건

본문

성능은 .NET datagrid 컨트롤 개발 시 가장 중요한 고려 사항입니다. Datagrid는 데이터를 표시, 편집 및 분석하는 데 가장 유용한 컨트롤 중 하나이므로 전체 데이터 집합을 처리할 수 있을 만큼 충분한 성능을 보여줘야 합니다.


GrapeCity는 항상 모든 .NET 플랫폼 전체에서 주력 FlexGrid 컨트롤의 성능을 개선하기 위한 방법을 찾고 있습니다.


FlexGrid를 .NET 5로 마이그레이션했을 때 병목 현상을 극복하고 새로운 프레임워크를 활용하기 위해 몇 가지 내부 측면을 새로 설계했습니다. GrapeCity는 .NET의 최신 버전을 지원하는 데 투자하는 동시에 데스크톱 응용 프로그램에 .NET Framework를 사용하는 많은 개발자를 지원합니다.


이 블로그에서는 WPF용 .NET Framework 4.5.2 FlexGrid 컨트롤의 성능을 살펴보고 표준 Datagrid와 몇 가지 다른 타사 컨트롤과 비교해 보겠습니다. 모든 그리드의 최신 버전을 서로 어떻게 비교하는지 살펴보겠습니다.


테스트한 WPF Datagrid


이 벤치마크는 다음 Datagrid 컨트롤을 사용하여 2021년 12월에 작성했습니다.


NuGet 패키지의 다운로드 가능한 최신 평가판 버전을 사용했습니다. Telerik은 로컬 NuGet 패키지만 지원하고 DevExpress는 자체 NuGet 서버를 보유하고 있습니다. 다른 참조 사항은 http://nuget.org/에서 업데이트할 수 있습니다. 일부 공급업체에서는 자사 사이트의 활성 계정에서 평가판 라이선스를 요청하도록 요구합니다.



테스트 결과


초기 로드 시간


이 벤치마크는 테스트된 Datagrid를 포함하는 사용자 컨트롤을 만들어 표시 트리에 삽입하고 데이터로 채웁니다. 이 테스트는 JIT 컴파일 및 XAML 구문 분석을 포함하여 데이터와 함께 Datagrid를 로드하는 데 걸리는 시간을 보여 줍니다.


여기서 FlexGrid for WPF 및 FlexGrid for WinForms가 초기 로드 시간에 성능이 가장 뛰어난 것을 알 수 있습니다.

시간



배치 작업


다음 2가지 벤치마크는 단일 배치 작업에서 1,000개 항목을 Datagrid에 추가하거나 Datagrid에서 제거하는 경우 사용 사례를 보여 줍니다. 일부 그리드의 경우 시간이 오래 걸리기 때문에 1,000개 행에 대해서만 이 테스트를 수행했습니다.


보시다시피 FlexGrid보다 성능이 뛰어난 제품은 Microsoft Datagrid뿐입니다.

배치



데이터 다시 로드


이 벤치마크에서는 데이터 및 자동으로 생성된 열을 둘 다 지우도록 Datagrid의 ItemsSource를 null로 설정한 다음 데이터를 다시 로드하도록 ItemsSource를 설정합니다.


FlexGrid는 대용량 데이터 집합을 로드하는 데 가장 뛰어난 성능을 보여줌을 다시 한번 확인할 수 있습니다.

데이터



스크롤


스크롤은 모든 개별 사용자가 수행하는 작업이므로 빠르고 원활해야 합니다. 이번 벤치마크에서는 일부 특정 데이터 행을 보기로 스크롤하는 메서드를 사용했습니다. 모든 그리드에는 이를 위한 구현이 일부 포함되어 있습니다.


여기서 보면, FlexGrid for WPF는 WinForms 버전보다 느리지만 WPF Datagrid 전반에서 평균임을 알 수 있습니다.

스크롤



열 작업


열 작업에 대한 벤치마크는 기본 CollectionView를 정렬, 필터링 및 그룹화하여 구현했습니다. 여기서 WPF FlexGrid는 10,000개 행에 대해 평균적인 성능을 보입니다.

작업


위 이미지는 결과의 일부만 보여 줍니다. 이 글의 아랫부분에 나와 있는 링크를 통해 더 많은 결과 수치를 확인하거나 벤치마크 소스 코드를 다운로드하고 테스트를 활용해 볼 수도 있습니다.



테스트 환경


벤치마크는 HP EliteOne 800 G5 All-in-One Desktop에서 다음 매개 변수를 사용하여 실행했습니다.

  • 프로세서: Intel(R) Core(TM) i7-8700 CPU @ 3.20GHz, 3.19GHz

  • 설치된 RAM: 16.0GB(15.8GB 사용 가능)

  • Radeon: RX 560X 시리즈, Full HD(1920 x 1080) 해상도

  • 시스템 유형: 64비트 운영 체제, x64 기반 프로세서

  • 버전: Windows 10 Pro Version 20H2


모든 그리드는 같은 크기, 기본 모양으로 설정하고 열 크기 조정, 그룹화 등에 대해 유사한 옵션으로 설정했습니다.




결론


테스트 전반에서 우리는 FlexGrid for WPF가 경쟁 제품에 비해 손색이 없음을 알게 되었습니다. FlexGrid는 스크롤 및 열 작업 측면에서 평균적인 결과를 보였지만 대용량 데이터 집합을 로드하고 배치 작업을 수행하는 데 최고의 WPF Datagrid 중 하나입니다.


계속 지켜봐 주세요. 다음 벤치마크는 NET 6 Datagrid에 관한 내용입니다!




지금 바로 ComponentOne을 다운로드하여 직접 테스트해보세요!

c1.png

 
  • 페이스북으로 공유
  • 트위터로  공유
  • 구글플러스로 공유
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

그레이프시티 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
그레이프시티 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@grapecity.com | 전화 : 1670-0583 | 경기도 안양시 동안구 시민대로 230, B-703(관양동, 아크로타워) 그레이프시티(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 Copyright ⓒ 2022 GrapeCity inc.