iPhone/iPad的内存十分紧张,所以有时进行调试时可能需要读取当前可用内存。其实挺简单,见下列代码:
#import <mach/mach.h>
#import <mach/mach_host.h>
@implementation Utils
+ (double)getAvailableMemory
{
vm_statistics_data_t vmStats;
mach_msg_type_number_t infoCount = HOST_VM_INFO_COUNT;
kern_return_t kernReturn = host_statistics(mach_host_self(), HOST_VM_INFO, (host_info_t)&vmStats, &infoCount);
if (kernReturn != KERN_SUCCESS)
{
return NSNotFound;
}
return (vm_page_size * vmStats.free_count);
}
end
使用方法更简单,比如:
NSLog(@"Available memory (KB) = %f",[Utils getAvailableMemory]);