UIImage缓存:只有性能后果?

时间:2012-12-27 00:11:13

标签: ios memory-management uiimage

直观地说,我一直觉得使用缓存UIImage初始化(imageNamed)不仅可以节省从磁盘加载的时间。我认为这也是一个内存问题:这些数据不是拥有几个具有相似数据的UIImage实例,而是一次加载到内存中。

使用imageNamed会导致更高效的内存吗?

1 个答案:

答案 0 :(得分:2)

是的,它也可以提高内存使用效率。

根据imageNamed:文档:

  

此方法在系统缓存中查找具有的图像对象   指定名称并返回该对象(如果存在)。如果匹配   图像对象尚未在缓存中,此方法加载图像   来自指定文件的数据,缓存它,然后返回   结果对象。

这里的关键是它“在系统缓存中查找图像对象”。

而且,为了确认,我制作了一个包含五个图像视图和一个按钮的示例项目。当调用imageNamed五次以设置所有五个时,我的堆增长了19.5k。使用imageWithContentsOfFile:,它增长了66.5k。