我有一个应用程序,其中有12个图像包含在一个数组中。所有这些图像同时显示在屏幕上。 (1个视图 - 12个更宽和更高的图像(UIImageView
' s)一个在另一个上。当用户做某事时,app移动图像,因此视图显示不同的场景)
图像本身并不太重(大小约为2500x5000
,但整个图像文件夹大约为3.5 MB)。
加载后,该应用程序消耗355 MB。
当我在viewDidLoad中放置断点(并且当时加载所有图像)时,xcode显示应用程序仅消耗9 MB,但在viewDidAppear
中它是355 MB。
这是什么原因?我怎样才能紧凑地存储图像? (我假设问题出现在图像中)。
感谢您的帮助!
答案 0 :(得分:2)
打开的图像将占用类似:H x W x number of channel x number of bit for channel
的内容,文件大小是另一回事,因为图像是根据其类型进行压缩的。你的图像在记忆中每个都是50Mb
唯一的方法是在移动图像之前调整图像大小。网上有很多图片大小调整类别,只是google一点点。
另一个建议是不加载所有图像,只需将数组引入文件路径,然后懒惰地实例化图像。
如果您需要使用员工图像,则应该查找CATiledLayer
和平铺技术。
答案 1 :(得分:0)
这些图像可能无法在屏幕上同时显示,因此您可能只想在必要时加载它们。
如果你仍然需要在屏幕上一起显示它们,请考虑减小它们的尺寸。
仍然,355Mb是巨大的。你在那个应用程序中做了什么,可能会占用所有内存吗?
答案 2 :(得分:0)
在Xcode中,转到Product-> Profile。你会发现很多有用的工具可以帮助你找到内存,CPU或电池使用方面的问题。但是,如果您以前没有看过它,请检查它。