【问题标题】:Why is CALayer allocating all this memory, and how can I track it down?为什么 CALayer 分配所有这些内存,我如何追踪它?
【发布时间】:2012-01-20 17:44:18
【问题描述】:

我正在检查分配工具,试图清理我公认的糟糕的内存使用情况。

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

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

我怎样才能找到它?

【问题讨论】:

    标签: iphone memory-management calayer instruments


    【解决方案1】:

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

    【讨论】:

    • 类似的东西是我最好的猜测......但我无法追踪它:没有显示在其他迭代期间未显示的视图,我没有看到在 Allocations 中留下的任何视图或视图控制器。
    • 您的应用可能会在某些迭代中显示不同的内容。
    猜你喜欢
    • 2012-02-18
    • 2012-11-08
    • 2017-05-03
    • 2018-12-21
    • 2012-10-30
    • 1970-01-01
    • 2020-10-26
    • 2014-03-14
    • 1970-01-01
    相关资源
    最近更新 更多