WPF平台Grid控件性能比较及测试结果
浏览量:2266
时间:2024-01-29 10:52:11
作者:采采
环境
本次测试的基准创建于2016年6月,使用了以下Grid控件:
- 下的DataGrid (PresentationFramework.dll的一部分)
- C1FlexGrid 4.4.0.20162.514 (ComponentOne WPF版)
- C1DataGrid 4.4.0.20162.514 (ComponentOne WPF版)
- XamDataGrid v16.1.16.1.20161.1000 (WPF Controls - Infragistics)
- GridControl v15.2.15.2.10.0 (WPF Controls | DevExpress)
- SfDataGrid 14.1400.0.41 (Syncfusion Essential Studio WPF版)
- RadGridView 2016.2.503.40 (Telerik WPF Controls | UI WPF版)
- DataGridControl v5.9.5.9.16204.15420 (Xceed DataGrid for WPF)
测试运行在ENVY-23 All-in-One Desktop环境中,配置如下:
- Intel i7 quad-core CPU @ 3.10 GHz
- 8 GB RAM
- NVIDIA GeForce GT 630M display adapter, Full HD (1920 x 1080) resolution
- Windows 10 Pro 64-bit OS
测试应用
基准应用程序允许选择和运行单独的测试,或按顺序运行所有测试。您可以选择每个测试运行的次数,以得到平均结果。为了减少其他因素的影响(如操作系统和其他应用程序的交互),所有结果都运行了10次。
基准测试步骤
每个基准测试按以下步骤进行:
- 移除上一次测试创建的所有UI,并调用和GC.WaitForPendingFinalizers方法,确保垃圾回收不会影响下次测试;
- 初始化下次测试和Stopwatch计时器;
- 按需要的次数执行测试;
- 测量总时间并计算平均结果;
- 记录结果。
基准1:创建控件并加载数据
该基准创建一个用户控件,包含一个用于测试的Grid,将其插入到可视化树中并填充数据。
基准2:重新加载数据到已存在的控件
该基准将DataGrid的ItemsSource设置为null,清空数据和自动生成的列,然后将ItemsSource设置为一个新的ListCollectionView。
基准3:排列单列
该基准通过IcollectionView接口实现排序,大多数情况下通过这种方式进行排列。但是Syncfusion的SfDataGrid没有内置支持,需要通过属性来实现排序。对于Infragistics的XamDataGrid,我们使用属性来实现排序。
基准4和5:滚动100行和整个表格
这两个基准模拟最终用户的交互,分别滚动100行和整个表格。每个Grid都有ScrollIntoView或类似方法来解决这个问题。
测试结果
在比较整个基准过程中,我们得出以下结论:
- 初始化加载时间:不论数据规模,所有的控件几乎都有相似的启动时间。
- 固定宽度基准:对于包含1,000、10,000和100,000条数据的数据源,测试结果非常相似。
- 自动列宽基准:在运行固定
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。
下一篇
如何在QQ空间添加背景音乐