OSX: exclude cached memory from used
This commit is contained in:
parent
cf2a094f13
commit
33d64bc53b
@ -30,33 +30,29 @@ std::string mem_string( bool use_colors )
|
|||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
|
|
||||||
// These values are in bytes
|
// These values are in bytes
|
||||||
int64_t total_mem;
|
u_int64_t total_mem;
|
||||||
int64_t used_mem;
|
u_int64_t used_mem;
|
||||||
int64_t unused_mem;
|
//u_int64_t unused_mem;
|
||||||
|
|
||||||
vm_size_t page_size;
|
vm_size_t page_size;
|
||||||
mach_port_t mach_port;
|
|
||||||
mach_msg_type_number_t count;
|
|
||||||
vm_statistics_data_t vm_stats;
|
vm_statistics_data_t vm_stats;
|
||||||
|
|
||||||
// Get total physical memory
|
// Get total physical memory
|
||||||
int mib[2];
|
int mib[] = { CTL_HW, HW_MEMSIZE };
|
||||||
mib[0] = CTL_HW;
|
size_t length = sizeof( total_mem );
|
||||||
mib[1] = HW_MEMSIZE;
|
|
||||||
size_t length = sizeof( int64_t );
|
|
||||||
sysctl( mib, 2, &total_mem, &length, NULL, 0 );
|
sysctl( mib, 2, &total_mem, &length, NULL, 0 );
|
||||||
|
|
||||||
mach_port = mach_host_self();
|
mach_port_t mach_port = mach_host_self();
|
||||||
count = sizeof( vm_stats ) / sizeof( natural_t );
|
mach_msg_type_number_t count = sizeof( vm_stats ) / sizeof( natural_t );
|
||||||
if( KERN_SUCCESS == host_page_size( mach_port, &page_size ) &&
|
if( KERN_SUCCESS == host_page_size( mach_port, &page_size ) &&
|
||||||
KERN_SUCCESS == host_statistics( mach_port, HOST_VM_INFO,
|
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 +
|
used_mem = static_cast<u_int64_t>(
|
||||||
( int64_t )vm_stats.inactive_count + ( int64_t )vm_stats.wire_count
|
( vm_stats.active_count + vm_stats.wire_count ) * page_size);
|
||||||
) * ( int64_t )page_size;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( use_colors )
|
if( use_colors )
|
||||||
@ -65,7 +61,7 @@ std::string mem_string( bool use_colors )
|
|||||||
}
|
}
|
||||||
|
|
||||||
oss << convert_unit( used_mem, MEGABYTES ) << '/'
|
oss << convert_unit( used_mem, MEGABYTES ) << '/'
|
||||||
<< convert_unit( total_mem, MEGABYTES ) << "MB";
|
<< convert_unit( total_mem, MEGABYTES ) << "MB";
|
||||||
|
|
||||||
if( use_colors )
|
if( use_colors )
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user