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

Spr*_*ing 4 iphone ios4

我有一个问题应用程序,基于导航,我创建并每次从笔尖推送我的tableviews.没有泄漏,仪器中的实时字节大约为2-3 MB.

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

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

- 为什么我从来没有得到任何内存警告和viewDidUnload甚至应用程序使用150 MB和更多的内存? - 应用程序有效,但这个内存使用对Apple商店来说是个问题吗?

fsa*_*int 16

东西正在发生什么事.请尝试以下代码来检查应用程序使用的内存的操作系统版本

-(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));
    }


}
Run Code Online (Sandbox Code Playgroud)

你需要#import"mach/mach.h"

这将告诉您操作系统为您的应用授予了多少内存.因此,如果你看到的是一些奇怪的乐器行为,这应该会有所启发.