Я хотел бы знать, как найти программно доступную память в iPhone от Objective-C?
Как найти доступную память в iPhone программно?
Ответ 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
Ответ 3
проверьте этот URL: https://github.com/andrealufino/ALSystemUtilities/blob/develop/ALSystemUtilities/ALSystemUtilities/ALDisk/ALDisk.m может быть, это полезно для вас.