【问题标题】:iOS - Dirty memory keeps growingiOS - 脏内存不断增长
【发布时间】:2013-10-20 00:00:58
【问题描述】:

在我的应用程序中,我使用 AFNetworking 在我的 UICollectionView 中异步加载来自 URL 的许多图像。可能太多了,因为一段时间后应用程序由于内存压力而崩溃。但是使用 Instruments,在“所有堆分配”下,我没有看到任何内存泄漏。

但是,VM 脏内存不断增长。我可以看到许多“CG 栅格数据”条目。我确定这与我的图片有链接,但我不明白是什么类型的。

有没有办法释放这个内存? 如果是内存,ARC下怎么解决? (我没有看到任何保留周期)

谢谢

【问题讨论】:

  • 您是否将图像保存在内存中?显示一些代码和日志/异常跟踪/内存终止日志。
  • 我也有类似的问题;我的应用程序获取资产管理器图像,使用它们,并在一段时间后 CG Raster 不断增长直到噗。但我没有保留参考资料,也没有看到“泄漏”的迹象......不确定谁在关注这些图像。我可以通过更智能的缓存来缓解它,但似乎只会延迟问题。
  • 啊,只是谈论它有帮助。感谢收听!我正在做一些 CGBitmap 操作。每个 CGCreateXxx() 都需要一个 CGReleaseXxx(),不像 ARC 对象。 stackoverflow.com/questions/13921779/…

标签: ios objective-c memory memory-leaks


【解决方案1】:

有点晚了,但我之前在 UIImageJPEGRepresentation 时遇到过这种情况。

你最好的做法是包裹在一个自动释放池中

@autoreleasepool {

// Code here... 

}

这将释放块内所有引用计数为 0 的实例。这对循环很有用,否则你的内存占用会增加,直到你到达方法上下文的末尾。

【讨论】:

    猜你喜欢
    • 2016-02-24
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    • 2017-11-09
    • 2018-09-17
    • 1970-01-01
    • 2015-08-07
    相关资源
    最近更新 更多