首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(iphone)当仪器显示“所有分配”只有7mb时,我的应用程序会收到内存警告?

(iphone)当仪器显示“所有分配”只有7mb时,我的应用程序会收到内存警告?
EN

Stack Overflow用户
提问于 2011-01-10 15:33:24
回答 2查看 1.4K关注 0票数 2

就像问题说的,它死在7mb..。

这正常吗?(7MB.)

仪器没有泄漏。

谢谢

  • EDIT

编辑17 7mb -> 7 7mb。我减少了内存的使用,去掉了我分配的不必要的池。

不过,它的内存警告是7MB..。我基本上是在创建图像,并在收到警告时不断地发布它们。

我做了很多

代码语言:javascript
复制
- (UIImage*) allocImage
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    UIImage* uiImage = [UIImage imageWithData: imageData];
    UIImage* changedImage = [uiImage changeColor: self.currentColor];
    uiImage = changedImage;
    [uiImage retain];
    [pool release];

    return uiImage;
}

释放我得到的uiImage (仪器显示内存增加2-3 mb,回到7 mb)。

每个图像的内存都是1mb,当应用程序收到警告时,我大概应该创建/销毁图像100次。

  • 编辑2

发现了类似的情况,但没有解决办法。

My iphone app gets memory warning and killed at 6.8MB

Memory Warning but Small Live Bytes

也许我应该把“创建UIImage”移到c/c++代码上?这样我就不用担心加载很多图像了?想知道这是否可能。

或者对图像使用内存池,因为图像大小是一样的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-10 15:38:23

这取决于很多因素,比如设备问题,iOS版本,同时设备上还发生了什么,等等。基本上,当警告到达时,你应该认真对待。得到警告并不是问题。当你得到它们的时候什么都不做是个坏主意。

根据我的经验,17 my处于正常水平的低端。

票数 2
EN

Stack Overflow用户

发布于 2011-01-10 16:04:35

是的,这很正常。但是在iOS设备上使用内存有点棘手。

首先,您必须知道可用内存的数量--您可以在http://adeem.me/blog/2009/04/01/get-the-amount-of-free-memory-available/上找到一些源代码。然后使一些大小小于测量值的无分配迭代(此操作迫使另一个应用程序释放内存)。在此之后,再次测量可用内存,您将感到惊讶--可用内存的大小已经增长。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4648414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档