gpt4 book ai didi

wpf - 为什么使用 CollectionViewSource.SortDescriptions 排序很慢?

转载 作者:行者123 更新时间:2023-12-04 07:14:13 25 4
gpt4 key购买 nike

这是单击 DataGrid 中的列标题时的默认排序方法。 .当底层列表包含 100,000 个项目时,刷新 View 大约需要 20 秒。设置 SortDescription 时可以观察到相同的延迟。上一个 CollectionView .

使用 ListCollectionView.CustomSort 排序或者通过对列表进行排序和重新评估几乎可以立即工作。

为什么会出现这种延迟?这只是对绑定(bind)属性的“反射税”吗?

最佳答案

你是对的,这是一种反射税。前段时间我非常仔细地研究了 DataGrid 的性能,而反射在这里是一个瓶颈。无论排序算法有多快,它们都不会在两次比较之间缓存属性值。因此,即使您有 n*ln(n) 比较,在 n == 100 000 的情况下,您也会得到 ~1 000 000 次操作。每个操作数都使用反射来获取值,因此您有 2 000 000 次调用税中的反射 :) ... ListCollectionView.CustomSort是这里的理想解决方案。

PS:最后,我们写了基于 ListView 的网格,因为我们对 DataGrid 的渲染性能也不满意……但那是另一回事了 :)

关于wpf - 为什么使用 CollectionViewSource.SortDescriptions 排序很慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1633717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com