首页 > 解决方案 > > 20K 行的不同数据源性能问题

问题描述

当拥有更大的数据集(大约 22,000 个项目)时,我遇到了 diffable 数据源的性能问题。我很惊讶在动画打开时应用快照需要这么多时间。见代码部分:

let shouldAnimate = tableView.numberOfSections != 0
apply(snapshot as NSDiffableDataSourceSnapshot<String, NSManagedObjectID>, animatingDifferences: shouldAnimate)

注意:Jesse Squires 提供了一个很好的资源:

我的问题是,鉴于应用快照是 O(n) 操作,我是否遗漏了某些东西或可区分的数据源无法更快地处理这个问题?

关闭动画,与 一样reloadData,会有所帮助。

示例代码是由SwiftLee根据这篇文章设置的。

在此处输入图像描述

请在此处查看示例项目。

示例视频在这里

更新(2021 年 9 月 2 日):这里有一个很好的 Twitter 讨论。

旁注:可以通过不设置 来改进示例应用程序,fetchBatchSize因为请求与NSFetchedResultsController. 见链接

标签: uitableviewcore-datansfetchedresultscontrollerdiffabledatasourceuitableviewdiffabledatasource

解决方案


推荐阅读