我使用以下代码检索我在设备上运行的应用程序使用的内存量:
-(void)appRam
{
task_basic_info info;
kern_return_t rval = 0;
mach_port_t task = mach_task_self();
mach_msg_type_number_t tcnt = TASK_BASIC_INFO_COUNT;
task_info_t tptr = (task_info_t) &info;
memset(&info, 0, sizeof(info));
rval = task_info(task, TASK_BASIC_INFO, tptr, &tcnt);
if (!(rval == KERN_SUCCESS)) return 0;
return info.resident_size;
}
但是,返回的内存量远远大于Xcode在其调试导航器中显示的内存量。例如,在某些特定点,上面的方法返回30MB而Xcode只显示8.2MB(参见附件截图),我希望找到导致这种差异的原因以及如何修复我的方法以返回准确的内存应用程序使用量。任何人吗?