Как найти использование памяти в Mac OSX?
Как найти использование памяти, как дисплей монитора активности в OSX 10.9 и выше. Я использовал следующий код для извлечения использования памяти.
но есть некоторая разница между тем, что он показывает в мониторе активности, и тем, что я нахожу этим кодом.
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_statistics64_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");
}
float free_count = vm_stat.free_count * pagesize;
float active_count=vm_stat.active_count *pagesize;
float inactive_count=vm_stat.inactive_count * pagesize;
float wire_used=vm_stat.wire_count *pagesize;
float zero_fill_count=vm_stat.zero_fill_count * pagesize;
float reactivations=vm_stat.reactivations *pagesize;
float pageins=vm_stat.pageins *pagesize;
float pageouts=vm_stat.pageouts *pagesize;
float faults=vm_stat.faults *pagesize;
float cow_faults=vm_stat.cow_faults * pagesize;
float lookups=vm_stat.lookups *pagesize;
float hits=vm_stat.hits * pagesize;
float purgeable_count=vm_stat.purgeable_count * pagesize;
float purges=vm_stat.purges *pagesize;
float speculative_count=vm_stat.speculative_count *pagesize;
Мне также интересно, что я должен рассматривать как память приложения, файловые кэши, проводную память и сжатую память.
Здесь количество проводов, которое я получил с помощью этого кода, совпадает с отображением на мониторе активности.
Может кто-нибудь помочь мне здесь. Спасибо
1 ответ
Вы можете найти память приложения с помощью этого appMemory = vm_page_size * (vm_stat.internal_page_count - vm_stat.purgeable_count);