变更记录
方案名称
内存管理 - 获取可用和已用的内存大小
关键字
内存管理 \ 内存使用情况 \ 可用内存 \ 已用内存 \ Memory
需求场景
- 需要获取生产环境低内存警告时的内存使用情况
参考链接
- 《高性能 iOS 应用开发》
详细内容
跟踪可用的和已用的内存
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| #import <mach/mach.h>
vm_size_t getUsedMemory() { task_basic_info_data_t 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);
if (kerr == KERN_SUCCESS) { return info.resident_size; } else { return 0; } }
vm_size_t getFreeMemory() { mach_port_t host = mach_host_self(); mach_msg_type_number_t size = sizeof(vm_statistics_data_t) / sizeof(integer_t); vm_size_t pagesize; vm_statistics_data_t vmstat;
host_page_size(host, &pagesize); host_statistics(host, HOST_VM_INFO, (host_info_t)&vmstat, &size);
return vmstat.free_count * pagesize; }
|
效果图
(无)
备注
(无)