参考文章Mac OS X的【内存】:Wired、Active、Inactive和Free
- Wired(联动): 系统核心占用的,永远不会从系统物【[内存】中驱除。
- Active(活跃): 表示这些内存数据正在使用种,或者刚被使用过。
- Inactive(非活跃): 表示这些内存中的数据是有效的,但是最近没有被使用。
- Free(可用空间): 表示这些内存中的数据是无效的,即内存剩余量!
#import <mach/mach.h>
- (void)printMemoryUsage
{
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;
}
double total = [NSProcessInfo processInfo].physicalMemory / 1024 / 1024;
double wired = ((vm_page_size * vmStats.wire_count) / 1024.0) / 1024.0;
double inactive = ((vm_page_size * vmStats.inactive_count) / 1024.0) / 1024.0;
double active = ((vm_page_size * vmStats.active_count) / 1024.0) / 1024.0;
double free = ((vm_page_size * vmStats.free_count) / 1024.0) / 1024.0;
printf("total = %f, wired = %f, inactive = %f, active = %f, free = %f\n", total, wired, inactive, active, free);
}
网友评论