2009-06-19 6 views

risposta

3

È possibile utilizzare Mach callhost_info(host, flavor, host_info, host_info_count). Se lo si chiama con flavor=HOST_BASIC_INFO, il buffer host_info punti viene riempito con una struttura host_basic_info, quello che sembra che:

struct host_basic_info { 
    integer_t    max_cpus;    /* max number of CPUs possible */ 
    integer_t    avail_cpus;    /* number of CPUs now available */ 
    natural_t    memory_size;   /* size of memory in bytes, capped at 2 GB */ 
    cpu_type_t    cpu_type;    /* cpu type */ 
    cpu_subtype_t   cpu_subtype;   /* cpu subtype */ 
    cpu_threadtype_t  cpu_threadtype;   /* cpu threadtype */ 
    integer_t    physical_cpu;   /* number of physical CPUs now available */ 
    integer_t    physical_cpu_max;  /* max number of physical CPUs possible */ 
    integer_t    logical_cpu;   /* number of logical cpu now available */ 
    integer_t    logical_cpu_max;  /* max number of physical CPUs possible */ 
    uint64_t    max_mem;    /* actual size of physical memory */ 
} 

Da questa struttura, è possibile ottenere la dimensione della memoria.

8

È possibile ottenere la memoria fisica con il seguente:

NSLog(@"physical memory: %d", [NSProcessInfo processInfo].physicalMemory); 

La memoria disponibile sta per essere, non qualcosa che si può inchiodare a un numero difficile, dal momento che il sistema operativo sarà uccidere applicazioni in background per voi come necessario per dare all'app in primo piano più memoria, oltre a cancellare le cache dei file ecc. Supponendo che tu stia facendo questo per ottimizzare il tuo caching, potresti costruire la dimensione della cache in base alla memoria fisica e indovinare quanto dovresti usare. Ad esempio, su un vecchio iphone 3g da 128 m, l'intera app otterrebbe forse solo 10-15 meg di ram prima di essere uccisa, dove un nuovissimo iphone5 a 1024 meg consentirà centinaia di megabyte di ram prima che il sistema operativo decida di ucciderti .

See memoria in dispositivi a http://en.wikipedia.org/wiki/List_of_iOS_devices

+1

Suppongo che dovrebbe essere questo, NSLog (@ "Memoria fisica:% llu", [NSProcessInfo processInfo] .physicalMemory); – Femina

Problemi correlati