iphone - 类,对象和内存消耗

时间:2010-11-30 23:04:47

标签: iphone

假设我有一个应用程序将在屏幕上绘制20个小UIImageViews。假设20张扑克牌面朝下。因此,您在屏幕上拥有相同的图像20次。

假设我有两种情况:

案例1

我有一个方法不在类加载卡背纹理,应用于UIImageView并将其定位在屏幕上。此方法运行20次,因此所有卡都作为图像视图放在屏幕上。

案例2

我有一个类,一旦初始化将加载卡背景图像,应用于UIImageView并将其作为对象传递。

假设现在我想使用简单的UIImageView翻译动画20张卡片。

从内存消耗,CPU负载和运行时执行的角度来看,我提到的两种情况中的哪一种对于应用程序来说会更轻,并且消耗更少的内存?

感谢。

2 个答案:

答案 0 :(得分:1)

根据我的理解,案例2将消耗更少的内存,但它不会有太大差异。

您能否确认在案例2中您的窗口中只有一个UIImageView?但如果是这种情况,那么使用第二种方法翻转卡片会更难。

答案 1 :(得分:1)

几乎可以肯定无所谓。真正的约束可能是视图和GPU内存,这将是相同的,因为你仍然在创建相同的20个UIImageViews。在您提及的任何类别中,您的设置成本几乎肯定都是微不足道的。而且20张图片也许没问题。确保图像的大小合理。并使用UIImage的+imageNamed:方法加载它们,以利用框架中的缓存。

如果您想要实际确定具体的性能差异,可以使用Instruments(通过Xcode)进行配置。