在iPhone总RAM(Total RAM in iPhone)

2019-07-30 08:32发布

我想知道我的iPhone可用的 RAM。 为此,我已经使用了下面的代码。

注:请不要把这个问题作为检索RAM统计,例如有线,不活动,积极和自由。

mach_port_t host_port;  
    mach_msg_type_number_t host_size;  
    vm_size_t pagesize;  
    host_port = mach_host_self();  
    host_size = sizeof(vm_statistics_data_t) / sizeof(integer_t);  
    host_page_size(host_port, &pagesize);  
    vm_statistics_data_t vm_stat;  
    if (host_statistics(host_port, HOST_VM_INFO, (host_info_t)&vm_stat, &host_size) != KERN_SUCCESS) {  
        NSLog(@"Failed to fetch vm statistics");  
        return;  
    }    

    /* Stats in bytes */  
    self.wired = vm_stat.wire_count * pagesize / (1024 * 1024);
    self.active = vm_stat.active_count * pagesize / (1024 * 1024);
    self.inactive = vm_stat.inactive_count * pagesize / (1024 * 1024);
    self.free = vm_stat.free_count * pagesize / (1024 * 1024);
    self.used = self.active + self.inactive + self.wired;
    self.total = self.used + self.free;

下面是结果:

  • 模拟器 :总内存= 2045(我的电脑包含2GB RAM)。 似乎是正确的。
  • 设备(iPhone 4):总内存= 390( 应为512 )。 不正确。
  • 设备(iPhone 3GS):总内存= 84( 应为256 )。 不正确。

请让我知道这是来计算的iDevice的 RAM的正确方法是什么?

Answer 1:

您无法读取设备的总RAM。 您只能读取使用VS免费RAM您的估计。 您的设备总是会使用一些内存(系统,为后台应用,另一个进程),所以你永远不会看到你“应该是512”完全。 为什么模拟器给予了密切的价值? 男人,这是模拟...如果你想知道的RAM,读你的设备的技术规格。 但随着您发布的方法,(我说),你会得到免费/使用MEM。 干杯。



Answer 2:

有一个Git项目它显示可用的最大RAM iPhone 。 直到它崩溃它还分配内存。 它节省了内存警告值,以及当应用程序崩溃。 在下次启动时你得到显示栏上的值。

资源



文章来源: Total RAM in iPhone