我使用[CALayer layer]
创建了一个CALayer实例,并将其帧设置为屏幕的帧(例如,768×1024点)。我没有设置这个图层的内容。这个层会因为更大的尺寸占用额外的内存,还是内存消耗保持不变,因为它没有任何东西可以绘制?
答案 0 :(得分:3)
CALayer基本上只是一些属性和方法。所以CALayer本身(几乎)不会花费内存。如果您将图像分配给当然然后的内容属性,这将花费您的图像在解压缩(CGImage)表单中使用的内存量。
(Afaik CALayer只存储对实际图像的引用,所以准确地说CALayer本身几乎没有内存使用)
要在运行时检查应用程序的内存使用情况,请使用(非常酷)分析工具:
享受
答案 1 :(得分:1)
我只是通过分配大量的空CALayer
来度量它,看起来每个变量都占用大约340字节的内存。分配一些可笑的大帧甚至都不会改变它。
但是,图层可能会消耗大量内存,这不仅是因为图像内容,而且还因为它似乎是内部像素缓存。我尚未对此进行实验,但是可以肯定的是,即使形状或文本图层开始在屏幕上绘制,它们也不会那么小。
答案 2 :(得分:0)
如果需要,可以在创建图层之前和之后检查可用内存。 如果你想这样做,请检查: