2012-07-11 17 views
8

Chcę poznać pamięć RAM Całkowita dostępna na moim iPhonie. Do tego użyłem następującego kodu.Suma pamięci RAM w telefonie iPhone

Uwaga: Proszę nie interpretować pytania, aby pobrać statystyki pamięci RAM, takie jak Wired, Inactive, Active i Free.

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; 

Oto wyniki:

  • Simulator: Całkowita pamięć = 2045 (mój komputer zawiera 2GB RAM). Wydaje się prawidłowe.
  • Urządzenie (iPhone 4): całkowita pamięć = 390 (should be 512). Błędny.
  • Urządzenie (iPhone 3GS): całkowita pamięć = 84 (should be 256). Błędny.

Proszę dać mi znać, jeśli jest to poprawny sposób obliczyć TOTAL RAM danego iDevice?

+3

Możliwy duplikat http://stackoverflow.com/questions/8032635/responding-to-ram-availability-in-ios/8072278#8072278 –

Odpowiedz

2

Nie można odczytać całkowitej pamięci RAM urządzenia. Możesz tylko odczytać szacunkową wartość twojej używanej vs wolnej pamięci RAM. Twoje urządzenie zawsze będzie używać pamięci (dla systemu, dla aplikacji działających w tle, dla innych procesów), więc nigdy nie zobaczysz "powinno być 512" całkowicie. Dlaczego symulator daje ścisłą wartość? Człowieku, to symulator ... Jeśli chcesz poznać pamięć RAM, przeczytaj specyfikacje techniczne swojego urządzenia. Ale dzięki opublikowanej przez ciebie metodzie (jak już powiedziałem) dostaniesz darmowy/użyty mem. Twoje zdrowie.

-1

There is an Git project który wyświetla maksymalną ilość pamięci RAM dostępną na twoim iPhone. Przydziela również pamięć do momentu awarii. Zapisuje wartość ostrzeżenia o pamięci, a także gdy aplikacja uległa awarii. Przy następnym uruchomieniu wyświetlasz wartości na pasku.

Source

enter image description here

Powiązane problemy