2009-06-19 10 views

答えて

3

Mach callhost_info(host, flavor, host_info, host_info_count)を使用できます。あなたがflavor=HOST_BASIC_INFO、バッファはhost_infoポイントでそれを呼び出すと構造体host_basic_infoで満たされているために、何がそのようになっています

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 */ 
} 

この構造から、メモリサイズを取得することができます。

8

次で物理メモリを取得することができます:

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

に必要なOSはあなたのためのバックグラウンドアプリをオフに殺すので、使用可能なメモリは、あなたがハード数に見極めることができるものではないことになるだろうフォアグラウンドアプリケーションにもっと多くのメモリを与え、ファイルキャッシュをクリアします。自分のキャッシュを最適化するためにこれを行っていると仮定すると、物理メモリに基づいてキャッシュサイズを構築し、どれくらい使うべきかを推測することができます。たとえば、古い128mのiPhone 3Gでは、アプリ全体が、恐らく10-15MgのRAMが得られるだけで、殺される前に新しい1024megのiphone5があなたに数百メガバイトのRAMを許してしまうでしょう。 。 http://en.wikipedia.org/wiki/List_of_iOS_devices

+1

私はこれがNSLog(@ "Physical Memory:%llu"、[NSProcessInfo processInfo] .physicalMemory)でなければならないと思います。 – Femina

関連する問題