Общий объем оперативной памяти устройства iOS
Можно ли определить фактический размер оперативной памяти устройства iOS?
Ссылаясь на этот вопрос Определяя доступный объем ОЗУ на устройстве iOS, мы можем определить свободную память, но как получить фактический общий размер.
Ответы
Ответ 1
Простейшим решением для поиска полной ОЗУ в устройстве является использование NSProcessInfo
:
Цель C:
[NSProcessInfo processInfo].physicalMemory
Swift
NSProcessInfo.processInfo().physicalMemory
Примечание: physicalMemory
дает нам информацию в байтах
Как описано здесь.
Ответ 2
Ответ находится прямо в верхнем ответе вопроса, который вы связали:
natural_t mem_used = (vm_stat.active_count +
vm_stat.inactive_count +
vm_stat.wire_count) * pagesize;
natural_t mem_free = vm_stat.free_count * pagesize;
natural_t mem_total = mem_used + mem_free;
NSLog(@"used: %u free: %u total: %u", mem_used, mem_free, mem_total);
Ответ 3
Возможно, это то, что вы хотите
- (NSUInteger)totalDiskSizeInGB
{
uint64_t totalSpace = 0;
NSError *error = nil;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSDictionary *dictionary = [[NSFileManager defaultManager] attributesOfFileSystemForPath:[paths firstObject] error: &error];
if (dictionary) {
NSNumber *fileSystemSizeInBytes = [dictionary objectForKey: NSFileSystemSize];
totalSpace = [fileSystemSizeInBytes unsignedLongLongValue];
}
return totalSpace / pow(1024, 3);
}
Ответ 4
Незначительное изменение для Swift 3:
ProcessInfo.processInfo.physicalMemory
Ответ 5
Следующий код - получить память в GB
//Для получения размера в GB
[NSProcessInfo processInfo].physicalMemory / (1024.0 * 1024.0 * 1024.0)];
//Быстрая версия
NSProcessInfo.processInfo().physicalMemory/(1024.0 * 1024.0 * 1024.0)