From cc408b7ad501630d1e0cbc0d9e62e7c2b1c77bc1 Mon Sep 17 00:00:00 2001 From: Eric Warmenhoven Date: Fri, 30 Aug 2024 14:12:24 -0400 Subject: [PATCH] macOS: better memory reporting --- frontend/drivers/platform_darwin.m | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/frontend/drivers/platform_darwin.m b/frontend/drivers/platform_darwin.m index 47f0a481ec..4ae106fb7d 100644 --- a/frontend/drivers/platform_darwin.m +++ b/frontend/drivers/platform_darwin.m @@ -769,21 +769,10 @@ static uint64_t frontend_darwin_get_total_mem(void) static uint64_t frontend_darwin_get_free_mem(void) { #if (defined(OSX) && (MAC_OS_X_VERSION_MAX_ALLOWED >= 101200)) - vm_size_t page_size; - vm_statistics64_data_t vm_stats; - mach_port_t mach_port = mach_host_self(); - mach_msg_type_number_t count = sizeof(vm_stats) / sizeof(natural_t); - - if ( KERN_SUCCESS == host_page_size(mach_port, &page_size) - && KERN_SUCCESS == host_statistics64(mach_port, HOST_VM_INFO, - (host_info64_t)&vm_stats, &count)) - { - long long used_memory = ( - (int64_t)vm_stats.active_count + - (int64_t)vm_stats.inactive_count + - (int64_t)vm_stats.wire_count) * (int64_t)page_size; - return used_memory; - } + task_vm_info_data_t vm_info; + mach_msg_type_number_t count = TASK_VM_INFO_COUNT; + if (task_info(mach_task_self(), TASK_VM_INFO, (task_info_t) &vm_info, &count) == KERN_SUCCESS) + return frontend_darwin_get_total_mem() - vm_info.phys_footprint; #elif defined(IOS) task_vm_info_data_t vm_info; mach_msg_type_number_t count = TASK_VM_INFO_COUNT;