iPhone应用程序使用的内存

时间:2012-08-27 17:35:54

标签: iphone ios ios5 memory

  

可能重复:
  How to Programmatically Tell How Much Memory an iOS App is Using?

当应用程序在前台或后台运行时,我需要知道iPhone应用程序使用了多少内存。 如果它每5秒显示一次内存使用情况会更好。 是否可以编写代码来显示正在使用的内存? 任何建议都会受到批评

2 个答案:

答案 0 :(得分:4)

首先在.h文件中包含方法report_memory,然后导入

#import <mach/mach.h>

这是.m文件

然后在此行中写下要打印内存使用值的行

[NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(report_memory) userInfo:nil repeats:YES];

然后添加此

-(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 usage: %.4lf MB", info.resident_size/1024.0/1024.0);
    } else {
        NSLog(@"Error with task_info(): %s", mach_error_string(kerr));
    }
}

.m文件的方法

答案 1 :(得分:2)

用户NSTimer计划以5秒为间隔运行。 要获得已用内存的值,这里有一些代码

#import <mach/mach.h>

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