iOS学习爬坑记录13:查看内存使用情况的obj-c和Swift代码
2015-01-13 14:50
1111 查看
obj-c代码:
Swift代码:
参考资料:1.http://blog.csdn.net/jasonblog/article/details/17685767
2.http://stackoverflow.com/questions/7989864/watching-memory-usage-in-ios/7990532#7990532
#import "mach/mach.h" #import "memusage.h" @implementation memusage static long prevMemUsage = 0; static long curMemUsage = 0; static long memUsageDiff = 0; static long curFreeMem = 0; -(vm_size_t) 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 pagesize; vm_statistics_data_t vm_stat; host_page_size(host_port, &pagesize); (void) host_statistics(host_port, HOST_VM_INFO, (host_info_t)&vm_stat, &host_size); return vm_stat.free_count * pagesize; } -(vm_size_t) usedMemory { struct task_basic_info info; mach_msg_type_number_t size = sizeof(info); kern_return_t kerr = task_info(mach_task_self(), TASK_BASIC_INFO, (task_info_t)&info, &size); return (kerr == KERN_SUCCESS) ? info.resident_size : 0; // size in bytes } -(void) captureMemUsage { prevMemUsage = curMemUsage; curMemUsage = [self usedMemory]; memUsageDiff = curMemUsage - prevMemUsage; curFreeMem = [self freeMemory]; } -(NSString*) captureMemUsageGetString{ return [self captureMemUsageGetString: @"Memory used %7.1f (%+5.0f), free %7.1f kb"]; } -(NSString*) captureMemUsageGetString:(NSString*) formatstring { [self captureMemUsage]; return [NSString stringWithFormat:formatstring,curMemUsage/1000.0f, memUsageDiff/1000.0f, curFreeMem/1000.0f]; } @end
Swift代码:
#import "mach/mach.h" vm_size_t usedMemory(void) { struct task_basic_info info; mach_msg_type_number_t size = sizeof(info); kern_return_t kerr = task_info(mach_task_self(), TASK_BASIC_INFO, (task_info_t)&info, &size); return (kerr == KERN_SUCCESS) ? info.resident_size : 0; // size in bytes } vm_size_t freeMemory(void) { 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 pagesize; vm_statistics_data_t vm_stat; host_page_size(host_port, &pagesize); (void) host_statistics(host_port, HOST_VM_INFO, (host_info_t)&vm_stat, &host_size); return vm_stat.free_count * pagesize; } void logMemUsage(void) { // compute memory usage and log if different by >= 100k static long prevMemUsage = 0; long curMemUsage = usedMemory(); long memUsageDiff = curMemUsage - prevMemUsage; if (memUsageDiff > 100000 || memUsageDiff < -100000) { prevMemUsage = curMemUsage; NSLog(@"Memory used %7.1f (%+5.0f), free %7.1f kb", curMemUsage/1000.0f, memUsageDiff/1000.0f, freeMemory()/1000.0f); } }
参考资料:1.http://blog.csdn.net/jasonblog/article/details/17685767
2.http://stackoverflow.com/questions/7989864/watching-memory-usage-in-ios/7990532#7990532
相关文章推荐
- Linux学习总结(10)——Linux查看CPU和内存使用情况
- ios 查看内存使用情况代码
- iOS学习爬坑记录4:ios8中的搜索栏,使用UISearchController
- 查看当前内存使用情况---练习记录
- iOS - 代码查看控制台打印内存使用情况:
- Linux学习总结(10)——Linux查看CPU和内存使用情况
- iOS - 代码查看控制台打印内存使用情况:
- free命令查看内存情况/ipcs命令查看共享内存使用情况
- linux下查看内存使用情况
- linux系统下查看内存使用情况
- 查看TOMCAT内存使用情况 内存数修改方法
- linux下查看进程内存使用情况
- solaris查看内存使用情况命令
- linux下查看内存使用情况
- 查看JVM内存使用情况语句
- 查看基于Android 系统单个进程内存、CPU使用情况的几种方法
- windows mobile进程查看器开发(四)—— 查看内存、内部存储和存储卡的使用情况
- linux下查看内存使用情况
- Linux查看CPU和内存使用情况
- 查看内存使用情况