我的应用程序使用95MB内存,当我通过仪器进行调查时发现CoreUI Image Date使用70MB,如何减少使用量?
答案 0 :(得分:5)
有几点需要考虑:
应该实例化的唯一图像对象是当前在屏幕上的图像对象。不要将图像保存在数组中。 (出于性能原因,你可能会使用缓存,但是在内存压力下清除缓存。)当然,有一组图像文件名(或标识符或你有什么),但不是图像本身。
例如,您希望确保在需要时动态实例化图像(例如,当它们滚动到视图中时),并在它们更长时间可见时释放它们(例如,当它们滚出视图时)。 / p>
如果图像的尺寸超出图像视图的尺寸(根据显示比例进行调整),则应调整这些图像的大小以匹配。消耗的内存量是图像尺寸的函数,而不是图像视图的尺寸。例如,100x100图像需要40kb,而1000x1000图像需要4mb。
这两点是相关的,因为图像通常需要比原始资产的文件大小所建议的更多的内存。运行时内存使用量是图像维度的函数,而不是资产的文件大小。图像文件通常是压缩的,但在应用程序使用时会解压缩。在运行时使用的内存通常是图像高度的4倍,这将大大超过原始JPG或PNG文件使用的空间量。