OSX: exclude cached memory from used

This commit is contained in:
Pawel "l0ner" Soltys 2015-02-15 01:17:51 +01:00
parent cf2a094f13
commit 33d64bc53b

@ -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 ) )
( host_info_t )&vm_stats, &count )
)
{
unused_mem = ( int64_t )vm_stats.free_count * ( int64_t )page_size;
//unused_mem = static_cast<u_int64_t>( 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<u_int64_t>(
( vm_stats.active_count + vm_stats.wire_count ) * page_size);
}
if( use_colors )