繁体   English   中英

应用程序接收内存不足警告,但只有5.7MB的实时字节

[英]App receiving low memory warning but only has 5.7MB of live bytes

我的应用程序一直收到低内存警告,重复操作并最终崩溃。 当我在乐器中进行分析时,我只看到崩溃时5.7 MB的活字节。 (崩溃显示没有回溯,没有错误等。它只是终止,这表示内存崩溃。)

为什么我的应用程序崩溃了如此低的内存占用? 我一直在iPad 1上测试iOS 5.1。

仪器截图

编辑:
我能够解决崩溃问题。 这是因为对一个具有3个UIImages属性的对象进行了额外的保留调用。 这些对象的累积导致内存警告和崩溃。

然而,问题仍然存在:为什么仪器显示只有5.7MB的实时字节? 这可能是由于UIImage's自动缓存吗?

我在你发布的代码中看不到任何明显的泄漏,但是如果你只是想重绘图像(可能是为了强制立即解压缩),那么这是一种非常复杂的方法。 这样做:

- (void)loadImage:(UIImage *)image
{
    UIGraphicsBeginImageContextWithOptions(image.size, image.scale);
    [image drawAtPoint:CGPointZero];
    self.someImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
}

希望这能解决你所看到的任何泄漏。

您是否在环境变量中将NSZombieEnabled设置为YES?

当僵尸被启用时,内存永远不会被释放,但会保留在僵尸池中以调试对无效指针的引用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM