2017-03-31 71 views
0

我retriving虛擬內存的大小象下面這樣:iOS中的進程使用的虛擬內存?

-(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

您需要訪問task_for_pid() API。這通常是過時的,需要使用權利(請參閱鏈接)。

雖然上述權利可能在模擬器中起作用,但我不確定它甚至可以在您自己的設備上工作,並且不會通過提交。

Getting task_for_pid() to work in El Capitan