/*
|
* This file is part of the SDWebImage package.
|
* (c) Olivier Poitrey <rs@dailymotion.com>
|
*
|
* For the full copyright and license information, please view the LICENSE
|
* file that was distributed with this source code.
|
*/
|
|
#import "SDDeviceHelper.h"
|
#import <mach/mach.h>
|
#import <sys/sysctl.h>
|
|
@implementation SDDeviceHelper
|
|
+ (NSUInteger)totalMemory {
|
return (NSUInteger)[[NSProcessInfo processInfo] physicalMemory];
|
}
|
|
+ (NSUInteger)freeMemory {
|
mach_port_t host_port = mach_host_self();
|
mach_msg_type_number_t host_size = sizeof(vm_statistics_data_t) / sizeof(integer_t);
|
vm_size_t page_size;
|
vm_statistics_data_t vm_stat;
|
kern_return_t kern;
|
|
kern = host_page_size(host_port, &page_size);
|
if (kern != KERN_SUCCESS) return 0;
|
kern = host_statistics(host_port, HOST_VM_INFO, (host_info_t)&vm_stat, &host_size);
|
if (kern != KERN_SUCCESS) return 0;
|
return vm_stat.free_count * page_size;
|
}
|
|
@end
|