iOS中的进程使用的虚拟内存?

时间:2017-03-31 14:31:08

标签: ios objective-c

我正在恢复虚拟内存大小,如下所示:

-(void)virtualMemory{
   struct mach_task_basic_info info;
   mach_msg_type_number_t size = MACH_TASK_BASIC_INFO_COUNT;
   kern_return_t kerr = task_info(mach_task_self(),
                               MACH_TASK_BASIC_INFO,
                               (task_info_t)&info,
                               &size);
   if( kerr == KERN_SUCCESS ) {
       NSLog(@"Virtual Memory size (in bytes): %llu", info.virtual_size);
   } else {
       NSLog(@"Error with task_info(): %s", mach_error_string(kerr));
   }

}

现在这给了我虚拟内存大小为 - 2784350208我正在使用模拟器。是否有可能获得特定进程使用的虚拟内存?

1 个答案:

答案 0 :(得分:1)

您需要访问task_for_pid() API。这通常是禁止使用的,需要使用权利(见链接)。

虽然所述权利可能在模拟器中有效,但我不确定它是否可以在您自己的设备上运行,并且它不会通过提交。

Getting task_for_pid() to work in El Capitan