仪器和马赫调用显示不同的内存使用?

时间:2012-03-31 13:28:19

标签: iphone ios cocoa-touch

Instruments'Allocations模板在'All Allocations - Live Bytes'下显示应用程序的当前内存使用情况。

根据这个帖子Programmatically retrieve memory usage on iPhone,我还可以使用以下代码获取应用程序的内存使用情况:

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

但是当'Live Bytes'显示7 + MB时,上面的代码给出40 + MB。他们不应该在同一个地方吗?

0 个答案:

没有答案