iPhone的位图性能

iPhone的位图性能,iphone,objective-c,performance,memory-leaks,Iphone,Objective C,Performance,Memory Leaks,对于iPhone/objective-C来说,这是一个全新的概念 我有一个应用程序,屏幕上有15-100个小图像(16x16或8x8 PNG)。在本例中,假设如果需要,我可以使用CGContext创建这些图像 我不得不假设iPhone使用这种方法比加载图像(PNG)性能更好。但是,位图版本更容易开发,并且还具有我需要的其他优点(如内置触摸事件) 如果性能不是这个应用程序的最终度量标准,那么放置100个小图像会降低性能/内存,甚至考虑切换到CGWATION方法。我的直觉告诉我,无论哪种方式,我都看

对于iPhone/objective-C来说,这是一个全新的概念

我有一个应用程序,屏幕上有15-100个小图像(16x16或8x8 PNG)。在本例中,假设如果需要,我可以使用CGContext创建这些图像

我不得不假设iPhone使用这种方法比加载图像(PNG)性能更好。但是,位图版本更容易开发,并且还具有我需要的其他优点(如内置触摸事件)


如果性能不是这个应用程序的最终度量标准,那么放置100个小图像会降低性能/内存,甚至考虑切换到CGWATION方法。我的直觉告诉我,无论哪种方式,我都看不到有多大的性能差异,但我对iPhone开发还太陌生,对它了解不够,无法产生影响。

如果位图太慢,我会先尝试位图版本,然后尝试CGContext版本


如果仍然太慢,我会将所有图标放入GL纹理。

我想这取决于图像生成算法的复杂性


我还将依赖于您的应用程序:您是否会像在动画中一样每秒多次绘制这些图像?如果是这种情况,请使用
UIImageViews

我认为使用100个左右的UIImageViews应该可以,只要您不需要快速设置它们的动画或同时更新它们。应避免执行任何会更改视图大小的操作(如调整包含所有视图的视图的大小),如果使用核心动画对其进行动画制作,请在单个动画块内执行所有动画。(用一个[UIView beginAnimations:context:],[UIView Committeanimations]包装所有内容-不是每个视图一个)


祝你好运

谢谢!不会有动画。我可能每隔几秒钟刷新一次整个屏幕,但这将是最大的重画量。如果重画是对用户交互的即时响应,您可能会感觉到延迟,所以请尝试一下,看看效果如何。