为什么CALayer会分配所有这些内存,如何跟踪它?

时间:2011-12-14 23:21:09

标签: iphone memory-management calayer instruments

我正在通过Allocations工具,试图清理我公认的可怕内存使用。

根据Apple的建议,我会在重复执行操作时拍摄快照,以确保释放内存。在大多数情况下它运作良好,但我被这一个难倒:

stack trace

这是CALayer显示器中某处的464KB分配,永远不会被清理干净。最糟糕的是它不一致 - 它不会马上发生(在这种情况下,它发生在我重复动作的第10次迭代中,并且数字不同)。每次操作通常的堆增长不到20KB(仍在清理它),但这个真的很突出。我找不到任何关于何时发生的模式,或者为什么。

如何追踪?

1 个答案:

答案 0 :(得分:0)

如果应用程序在该视图中进行任何绘制,则需要多少内存来支持任何全屏UIView的绘图层。只要分配并显示该视图,就无法清理它。