iphone的总内存系统与实际内存大小不匹配

时间:2015-04-02 20:07:25

标签: ios objective-c iphone memory memory-management

我在使用代码在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

谢谢! 罗曼

0 个答案:

没有答案