我的问题是,大量的列表会导致滑动卡顿吗?移动端有"回收,重用,缓存"这种策略,但如果不使用这种策略,而将大量的列表数据加载到内存中,滑动时候会卡顿吗?
我的理解是它们已经加载到内存中了,滑动只是将其展示出来,缺点是占用内存特别大。
如果使用了回收策略,只有屏幕展示的那几条列表会被加载到内存中,滑动出去的放到复用列表中,以供下次使用,这样可以节约大量内存,但在快速滚动刷新的列表中,这需要 cpu 进行大量的计算来刷新列表中的数据吧?
所以我觉得,如果不使用回收策略,那么 cpu 会在第一时间创建很多列表数据,这会导致一开始卡顿,创建完数据后,占用很大内存。但之后的刷新,不应该卡顿。
如果使用回收策略,内存压力小了,开始不需要进行大量的 cpu 计算,所以不会有开始渲染卡顿问题。但后面的快速刷新会消耗 cpu 。
大家都在讲渲染的问题。渲染不是系统框架做的工作吗?程序能够控制的,是配合这些框架来优化性能,比如使用某个快速的算法来计算每一个列表的高度,或者是固定高度,或者是简单的计算高度。
所以我的问题再优化下,对于回收策略来讲,复杂的列表,在快速滑动情况下,这样的 cpu 工作(将数据分配到可复用的列表中)也是很轻松的,已经没有可优化的空间了。对吗?