[.NET6] WPF Datagrid 성능 비교 > 시티즌 인사이트

본문 바로가기

IT&개발 정보 [.NET6] WPF Datagrid 성능 비교

페이지 정보

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

본문

앞서 블로그에 올린 글에서는 최신 .NET Framework WPF Datagrid에 대한 성능 결과를 공유했습니다.


이제 .NET 6에서는 Datagrid의 성능이 어떻게 달라지는지 비교해 보겠습니다.


우리는 만드는 모든 컨트롤의 성능을 개선하기 위한 더 나은 전략을 찾기 위해 끊임없이 노력하고 있습니다. FlexGrid를 .NET 5로 마이그레이션했을 때 병목 현상을 극복하고 새로운 프레임워크를 활용하기 위해 몇 가지 내부 측면을 새로 설계했습니다.


최근에, GrapeCity는 .NET 5 FlexGrid에서 더 오래 지원을 받을 수 있는 .NET 6로 마이그레이션했습니다. .NET 5에 대한 지원은 1년인데 비해 Microsoft에서는 .NET 6를 3년 동안 지원합니다. .NET 6에 대한 성능이 .NET 5에 비해 어떤지 살펴보도록 하겠습니다.



테스트한 .NET 6 Datagrid


이번 성능 비교에서는 다음 .NET 6 WPF Datagrid 컨트롤을 살펴보았습니다.



WinForms FlexGrid는 데스크톱 플랫폼을 서로 어떻게 비교할 수 있는지 알아보기 위해 포함했습니다. 벤치마크 응용 프로그램은 공개 API 및 네임스페이스 측면에서 이전 .NET Framework 응용 프로그램에 비해 바뀌었습니다. 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 및 DevExpress GridControl에는 스크롤 애니메이션이 있는데, 벤치마크를 위해 애니메이션은 비활성화되었습니다.



열 작업


열 작업에 대한 벤치마크는 기본 CollectionView를 정렬, 필터링 및 그룹화하여 구현했습니다. 여기서 WPF FlexGrid는 매우 우수한 성능을 보였습니다.

작업

참고: FlexGrid for WPF 및 DevExpress GridControl에는 확장된 그룹 애니메이션이 있고 일부 컨트롤은 기본적으로 그룹을 축소합니다. 벤치마크를 위해 애니메이션은 비활성화되었으며 모든 컨트롤은 그룹을 전부 확장하도록 설정했습니다.


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



테스트 환경


벤치마크는 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


모든 그리드는 같은 크기, 기본 모양으로 설정하고 열 크기 조정, 그룹화 등에 대해 유사한 옵션으로 설정했습니다. 첨부된 테스트 응용 프로그램은 공개 API 및 네임스페이스 측면에서 .NET Framework 벤치마크에 비해 바뀌었습니다.



결론


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


이 테스트에서 사용한 라이브러리 중 일부는 .NET 6용으로 빌드되지 않았습니다.

  • DevExpress의 대상은 .Net Core 3.0임

  • Syncfusion 및 Infragistics 라이브러리의 대상은 .Net 5임

  • 로깅에 사용되는 C1Excel 라이브러리의 대상은 .Net Framework 4.5.2임


다행히 대상으로 하는 .NET Framework 또는 .NET 버전에 상관없이 모든 라이브러리가 .NET 6 환경에서 잘 작동합니다. (Xceed Datagrid는 .NET 6용이 없어 벤치마크에서 제외되었습니다.)




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

c1.png

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

댓글목록

등록된 댓글이 없습니다.

그레이프시티 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기

인기글

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