iPhone应用程序使用150 MB内存,仍然没有内存不足警告!

标签 iphone ios4

我有一个基于导航的问题应用程序,我每次都从 Nib 创建并推送我的表格 View 。没有泄漏,在仪器中,实时字节大约为 2-3 MB。

我在真实设备(越狱的 IOS4 iPhone)中进行了测试,当我深入导航时(大约 200 个页面推送),我可以看到内存使用量高达 150 MB!当我导航回根目录时,它们都被释放了,但这不是一个奇怪的行为吗? (每个 Nib View 大约 800 KB,其中没有大数据或图像)

最奇怪的是,我向 didreceivememorywarning 和 didunloadview 方法发出了一些警报,但没有收到任何内存警报!

-为什么即使应用程序使用 150 MB 或更多内存,我也从未收到任何内存警告和 viewDidUnload ? -应用程序可以运行,但这种内存使用对 Apple 商店来说是一个问题吗?

最佳答案

一些时髦的事情正在发生。尝试以下代码来检查您的应用使用的内存量的操作系统版本

-(void) report_memory {
    struct task_basic_info info;
    mach_msg_type_number_t size = sizeof(info);
    kern_return_t kerr = task_info(mach_task_self(),
                                   TASK_BASIC_INFO,
                                   (task_info_t)&info,
                                   &size);
    if( kerr == KERN_SUCCESS ) {
        NSLog(@"Memory in use (in bytes): %u", info.resident_size);
    } else {
        NSLog(@"Error with task_info(): %s", mach_error_string(kerr));
    }


}

您需要#import“mach/mach.h”

这将告诉您操作系统已授予您的应用程序多少内存。因此,如果您看到的是一些奇怪的 Instruments 行为,这应该会有所启发。

关于iPhone应用程序使用150 MB内存,仍然没有内存不足警告!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6787528/

相关文章:

iphone - UIApplication openURL后台

iphone - 如何在 Swift 中使用 CoreData 获取 n 天前的项目?

xml - NSXMLParser,两个相同的元素有帮助!

ios - SecTrustEvaluate 总是返回 kSecTrustResultRecoverableTrustFailure 和 SecPolicyCreateSSL

objective-c - UITableView 索引栏自定义

iphone - 从框架加载 nib 文件

iphone - 使用 AFNetworking 发送嵌套的 JSON

iphone - Apple 是否批准使用 setKeepAliveTimeout :handler methode for updating GPS location to server?

iphone - 将数组元素复制到另一个类数组中

objective-c - 用于将 sqlite 表导出和导入到 XML for ObjC/iPhone 的库