UICollectionView低帧率

时间:2014-01-02 11:57:18

标签: ios performance frame-rate collectionview

我有一个集合视图,显示3个图像,两个标签和1个属性字符串(字符串具有不同的颜色,字体大小和值对于每个单元格不是唯一的)。其中一个图像来自网络,我使用AFnetworking进行下载和缓存。集合视图同时显示15个单元格。

当我滚动时,我只能达到25帧/秒。

以下是我做的事情: - 数据处理在前面完成并缓存到对象 - 图像和视图是不透明的 - 重复使用 - 视图和视图

我完成了所有我所知道的优化,但我无法达到至少55帧/秒。

如果您可以分享其他技术来加速细胞的重复使用。

我甚至考虑在屏幕上预渲染子视图并将其缓存到某个地方,但我不确定它是如何完成的。

当我在iPhone上运行该应用程序时,它很快,因为它一次只显示至少四个单元格。

2 个答案:

答案 0 :(得分:1)

您需要做的第一件事是启动仪器并查明您是否 CPU绑定 (计算或常规I / O是瓶颈)或 GPU绑定 (显卡正在挣扎)。 。取决于哪个是问题,解决方案会有所不同。

这是一个video tutorial,展示了如何做到这一点(以及其他内容)。 。这个来自Sean Woodhouse @ Itty Bitty Apps(他们制作了精美的Reveal工具)。

注意:在性能调优的上下文中,我们通常会讨论I / O绑定或CPU绑定作为单独的问题,但是我将它们组合在一起意味着“由于计算速度慢或I / O数据没有得到到显卡足够快“。 。如果这确实是问题,那么下一步就是要确定它是否确实与等待I / O或CPU被最大化有关。

首先,乐器可能会让人感到困惑,但上述视频帮助我充分利用了它的力量。

这是来自Anthony Egerton的另一个很棒的教程。

答案 1 :(得分:0)

您使用的图片大小是多少?

可行的优化技术之一就是 调整图像大小,使其与您正在显示的视图的大小相匹配。