tengo - ¿Cómo encontrar la memoria disponible en iPhone programáticamente?
liberar espacio sistema iphone (3)
Puede obtener memoria física con lo siguiente:
NSLog(@"physical memory: %d", [NSProcessInfo processInfo].physicalMemory);
La memoria disponible no va a ser algo que se pueda encontrar en un número difícil, ya que el sistema operativo eliminará las aplicaciones en segundo plano según sea necesario para darle más memoria a la aplicación en primer plano, junto con la eliminación de cachés de archivos, etc. Suponiendo que esté haciendo esto para optimizar su propio almacenamiento en caché, puede construir el tamaño de su caché en función de la memoria física y adivinar cuánto debe usar. Por ejemplo, en un antiguo iPhone 3g de 128m, toda su aplicación solo obtendría quizás 10-15megs de ram antes de que se matara, donde un nuevo iphone de 1024meg le permitirá cientos de megabytes de ram antes de que la OS decida matarlo .
Consulte la memoria en dispositivos en http://en.wikipedia.org/wiki/List_of_iOS_devices
¿Me gustaría saber cómo encontrar memoria disponible mediante programación en iPhone desde Objective-C?
compruebe esta url: https://github.com/andrealufino/ALSystemUtilities/blob/develop/ALSystemUtilities/ALSystemUtilities/ALDisk/ALDisk.m puede ser esto útil para usted.
Puede utilizar la llamada Mach host_info(host, flavor, host_info, host_info_count)
. Si lo llama con flavor=HOST_BASIC_INFO
, el buffer host_info
apunta a se rellena con una estructura host_basic_info
, lo que se ve así:
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 */
}
De esta estructura, puede obtener el tamaño de la memoria.