Подтвердить что ты не робот

Как найти доступную память в iPhone программно?

Я хотел бы знать, как найти программно доступную память в iPhone от Objective-C?

4b9b3361

Ответ 1

Вы можете использовать вызов Маха host_info(host, flavor, host_info, host_info_count). Если вы вызываете его с помощью flavor=HOST_BASIC_INFO, то буфер host_info указывает на заполнение struct 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 */
}

Из этой структуры вы можете получить размер памяти.

Ответ 2

Вы можете получить физическую память со следующим:

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

Доступная память - это не то, что вы можете прикрепить к жесткому номеру, так как os будет убивать фоновые приложения для вас, если необходимо, чтобы придать приоритетному приложению больше памяти, а также очистить кеширование файлов и т.д. Предполагая, сделав это для оптимизации собственного кэширования, вы можете создать свой размер кеша на основе физической памяти и угадать, сколько вы должны использовать. Например, на старом 128-миллиметровом iphone 3g, все ваше приложение получит всего 10-15 мегабайт бара до его убийства, где новый 1024-мегапиксельный iphone5 позволит вам сотнями мегабайт бара до того, как os решит вас убить.

Смотрите память на устройствах http://en.wikipedia.org/wiki/List_of_iOS_devices