获取app当前可用的剩余内存

头文件

#import <UIKit/UIKit.h>  
#import <mach/mach.h>  
#import <mach/mach_host.h>  
  
@interface UIDevice (Utils)  
  
+ (natural_t)getFreeMemory;  
  
@end

实现文件

#import "UIDevice+Utils.h"

@implementation UIDevice (Utils)

+ (natural_t)getFreeMemory
{
    mach_port_t host_port;
    mach_msg_type_number_t host_size;
    vm_size_t pagesize;
    host_port = mach_host_self();
    host_size = sizeof(vm_statistics_data_t) / sizeof(integer_t);
    host_page_size(host_port, &pagesize);
    vm_statistics_data_t vm_stat;
    
    if (host_statistics(host_port, HOST_VM_INFO, (host_info_t)&vm_stat, &host_size) != KERN_SUCCESS) {
        NSLog(@"Failed to fetch vm statistics");
        return 0;
    }
    
    /* Stats in bytes */
    natural_t mem_free = vm_stat.free_count * pagesize;
    return mem_free;
}

@end

 

参考:http://stackoverflow.com/questions/4579642/monitor-memory-usage-in-an-iphone-app

          http://www.cocoachina.com/bbs/read.php?tid=83996

posted @ 2012-08-12 13:16  愚茶道长  阅读(372)  评论(0编辑  收藏  举报