【问题标题】:CoreAnimation memory issue with ARCARC 的 CoreAnimation 内存问题
【发布时间】:2013-10-08 21:15:05
【问题描述】:

在我使用 ARC 的 iPhone 应用程序中,推送某些视图控制器会导致未释放的大量内存分配。大多数 Live Bytes 都有标头 VM:CoreAnimation

我尝试过使用 @autoreleasepool { } 包装各种代码,例如推送视图控制器,但它没有任何区别。一旦不再需要视图控制器,将它们设置为 nil 也无济于事。

我们将不胜感激您的帮助和建议!

更新

我意识到内存分配的时间与从表格视图推送 CorePlot 图表的详细视图一致。在表视图的头文件中也引用了详细视图。一个问题是我将详细视图设置为 nil,然后在它被推送之前重新分配它。如果我只在第一次加载表视图时启动详细视图一次,然后在每次推送之前刷新其内容,则内存分配只会发生一次。

但是,我还没有完全解决这个问题,因为在第一次推送详细视图时仍然有很大的内存分配,永远不会释放。

【问题讨论】:

  • ...您是否在循环中生成了图形上下文?

标签: ios memory automatic-ref-counting


【解决方案1】:

也许您正在使用 CoreGraphics 框架在视图上绘制一些东西,但您没有释放 coreGraphics 对象。 CoreGraphics 对象不是由 ARC 释放的,它必须手动保留/释放。

【讨论】:

  • 感谢您的建议,我进行了调查,但这不是问题的根源
【解决方案2】:

我发现内存问题是由创建新的 Core-Plot 图表引起的,当我尝试释放它们时没有释放它们的内存。

当我尝试解除分配图表时,我设法使用此功能提高了性能:

[图形删除绘图:绘图];

这足以显着改善这种情况,尽管我仍在努力获得 100% 的内存释放。从阅读 Core Plot 论坛看来,我并不是唯一遇到此类问题的人......

https://groups.google.com/forum/#!searchin/coreplot-discuss/memory/coreplot-discuss/nWui9VjnMtQ/er2FO3o9syYJ

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-15
    相关资源
    最近更新 更多