Можно ли определить фактический размер оперативной памяти устройства iOS?
Ссылаясь на этот вопрос Определяя доступный объем ОЗУ на устройстве iOS, мы можем определить свободную память, но как получить фактический общий размер.
Можно ли определить фактический размер оперативной памяти устройства iOS?
Ссылаясь на этот вопрос Определяя доступный объем ОЗУ на устройстве iOS, мы можем определить свободную память, но как получить фактический общий размер.
Простейшим решением для поиска полной ОЗУ в устройстве является использование NSProcessInfo
:
Цель C:
[NSProcessInfo processInfo].physicalMemory
Swift
NSProcessInfo.processInfo().physicalMemory
Примечание: physicalMemory
дает нам информацию в байтах
Как описано здесь.
Ответ находится прямо в верхнем ответе вопроса, который вы связали:
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);
Возможно, это то, что вы хотите
- (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);
}
Незначительное изменение для Swift 3:
ProcessInfo.processInfo.physicalMemory
Следующий код - получить память в GB
//Для получения размера в GB
[NSProcessInfo processInfo].physicalMemory / (1024.0 * 1024.0 * 1024.0)];
//Быстрая версия
NSProcessInfo.processInfo().physicalMemory/(1024.0 * 1024.0 * 1024.0)