uitableview - > 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
. 见链接。
解决方案
推荐阅读
- c - 如何将带有机器代码的文件存储到数组中
- json - 当路径正确时,OPENJSON() SQL SERVER 返回 null
- django - Django + Cython 在 django 应用程序视图中导入 cython 模块
- react-native - 使用 FlatList 中项目的索引/键反应 Native TouchableOpacity onPress
- javascript - JQuery 拒绝执行内联脚本,因为它违反了 Chrome 扩展上的以下内容安全策略指令
- python - 如何从我的系统的所有目录中查找示例 *.mp3 文件?
- vba - VBA WORD循环遍历句子和句子行
- javascript - 如何访问选择标签中选定选项的对象?流星与火焰
- python-3.x - 计算特定暗区的平均宽度
- typescript - 使 TypeScript 将模块说明符转换为其解析的目标文件路径