我在使用代码在iphone上获得免费,非活动,使用和线路内存系统时遇到了一些问题(目的是向用户显示这些信息)。
我在其他线程代码中找到了所有内存详细信息:
int mib[6];
mib[0] = CTL_HW;
mib[1] = HW_PAGESIZE;
int pagesize;
size_t length;
length = sizeof (pagesize);
if (sysctl (mib, 2, &pagesize, &length, NULL, 0) < 0)
{
fprintf (stderr, "getting page size");
}
mach_msg_type_number_t count = HOST_VM_INFO_COUNT;
vm_statistics_data_t vmstat;
if (host_statistics (mach_host_self (), HOST_VM_INFO, (host_info_t) &vmstat, &count) != KERN_SUCCESS)
{
fprintf (stderr, "Failed to get VM statistics.");
}
double unit = 1024 * 1024;
NSLog(@"Free : %f , inactive : %f, active : %f, wired : %f",vmstat.free_count * pagesize / unit,vmstat.inactive_count * pagesize / unit,vmstat.active_count * pagesize / unit,vmstat.wire_count * pagesize / unit);
但结果很奇怪:
Free : 344.687500 , inactive : 359.593750, active : 1383.843750, wired : 842.578125
我目前正在测试iphone 5s,据称其只有1024 Mb的RAM。 因此,如果有人知道如何获得有关内存的真实信息,那就太棒了:D
谢谢! 罗曼