我想知道如何从Objective-C中找到iPhone中可编程的可用内存?
答案 0 :(得分:8)
您可以通过以下方式获得物理内存:
NSLog(@"physical memory: %d", [NSProcessInfo processInfo].physicalMemory);
可用内存不是你可以记录到硬数字的东西,因为操作系统会根据需要为你提供后台应用程序,以便为前台应用程序提供更多内存,同时清除文件缓存等等。假设你'为了优化您自己的缓存,您可以根据物理内存构建缓存大小并猜测应该使用多少。例如,在一个旧的128米iphone 3g上,你的整个应用程序在它被杀之前只能得到10-15meg的ram,其中一个全新的1024meg iphone5将允许你在攻击决定杀死你之前有数百兆的ram
设备中的内存答案 1 :(得分:3)
您可以使用Mach call host_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 */
}
从这个结构中,你可以得到内存大小。
答案 2 :(得分:0)
检查此网址: https://github.com/andrealufino/ALSystemUtilities/blob/develop/ALSystemUtilities/ALSystemUtilities/ALDisk/ALDisk.m 可能这对你有帮助。
答案 3 :(得分:0)
Swift 5
您的Ram大小(以字节为单位):
let totalRam = ProcessInfo.processInfo.physicalMemory