From 33d64bc53bf6117cdf0294898d9e991fbe87799d Mon Sep 17 00:00:00 2001 From: "Pawel \"l0ner\" Soltys" Date: Sun, 15 Feb 2015 01:17:51 +0100 Subject: [PATCH] OSX: exclude cached memory from used --- osx/memory.cc | 32 ++++++++++++++------------------ 1 file changed, 14 insertions(+), 18 deletions(-) diff --git a/osx/memory.cc b/osx/memory.cc index b538523..eb5dbea 100644 --- a/osx/memory.cc +++ b/osx/memory.cc @@ -30,33 +30,29 @@ std::string mem_string( bool use_colors ) std::ostringstream oss; // These values are in bytes - int64_t total_mem; - int64_t used_mem; - int64_t unused_mem; + u_int64_t total_mem; + u_int64_t used_mem; + //u_int64_t unused_mem; vm_size_t page_size; - mach_port_t mach_port; - mach_msg_type_number_t count; vm_statistics_data_t vm_stats; // Get total physical memory - int mib[2]; - mib[0] = CTL_HW; - mib[1] = HW_MEMSIZE; - size_t length = sizeof( int64_t ); + int mib[] = { CTL_HW, HW_MEMSIZE }; + size_t length = sizeof( total_mem ); sysctl( mib, 2, &total_mem, &length, NULL, 0 ); - mach_port = mach_host_self(); - count = sizeof( vm_stats ) / sizeof( natural_t ); + 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_statistics( mach_port, HOST_VM_INFO, - ( host_info_t )&vm_stats, &count ) ) + KERN_SUCCESS == host_statistics( mach_port, HOST_VM_INFO, + ( host_info_t )&vm_stats, &count ) + ) { - unused_mem = ( int64_t )vm_stats.free_count * ( int64_t )page_size; + //unused_mem = static_cast( vm_stats.free_count * page_size ); - used_mem = ( ( int64_t )vm_stats.active_count + - ( int64_t )vm_stats.inactive_count + ( int64_t )vm_stats.wire_count - ) * ( int64_t )page_size; + used_mem = static_cast( + ( vm_stats.active_count + vm_stats.wire_count ) * page_size); } if( use_colors ) @@ -65,7 +61,7 @@ std::string mem_string( bool use_colors ) } oss << convert_unit( used_mem, MEGABYTES ) << '/' - << convert_unit( total_mem, MEGABYTES ) << "MB"; + << convert_unit( total_mem, MEGABYTES ) << "MB"; if( use_colors ) {