Diffable 数据源性能问题

ray*_*ayx 6 uikit ios diffabledatasource

我已经使用了一段时间的 diffable 数据源,UITableView我喜欢它。但是今天我意识到它设计中固有的一个问题。使用diffable数据源,需要在数据发生变化时生成并应用快照。如果数据量很大,或者更有可能数据量不是很大,但是生成每个数据点的时间很短,生成快照的累积时间会变得很明显,导致用户体验不佳。我不认为旧的 API 有这个问题,因为只为要在屏幕上显示的项目调用委托函数。

由于它是一项新技术(它是为 SwiftUI 引入的,对吗?),我无法相信它会有如此明显的局限性。但是从我在网上能找到的资料来看,我看不出它是如何解决这个问题的。在 WWDC 2019 session 220 视频中,演讲者提到它可以以透明的方式在后台线程上运行,但我认为这不一定能缓解所有场景中的问题。例如,在用户交互启动数据更改的场景中,通常以同步方式处理数据和更新 UI,因此在后台运行并没有真正的帮助。

我想我一定错过了什么,但我看不到它是什么。任何解释将不胜感激。