diff options
Diffstat (limited to 'base/process_util_mac.mm')
-rw-r--r-- | base/process_util_mac.mm | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/base/process_util_mac.mm b/base/process_util_mac.mm index 61029c0..e1574e5 100644 --- a/base/process_util_mac.mm +++ b/base/process_util_mac.mm @@ -7,6 +7,7 @@ #import <Cocoa/Cocoa.h> #include <crt_externs.h> +#include <mach/mach.h> #include <mach/mach_init.h> #include <mach/task.h> #include <spawn.h> @@ -213,4 +214,25 @@ bool ProcessMetrics::GetWorkingSetKBytes(WorkingSetKBytes* ws_usage) const { // ------------------------------------------------------------------------ +// Bytes committed by the system. +size_t GetSystemCommitCharge() { + host_name_port_t host = mach_host_self(); + mach_msg_type_number_t count = HOST_VM_INFO_COUNT; + vm_statistics_data_t data; + kern_return_t kr = host_statistics(host, HOST_VM_INFO, + reinterpret_cast<host_info_t>(&data), + &count); + if (kr) + LOG(ERROR) << "Failed to fetch host statistics."; + return 0; + + vm_size_t page_size; + kr = host_page_size(host, &page_size); + if (kr) + LOG(ERROR) << "Failed to fetch host page size."; + return 0; + + return (data.active_count * page_size) / 1024; +} + } // namespace base |