From 963d2b3ca8823fecf4a45dbb51ab91c85a9964ff Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Mon, 25 Feb 2019 15:04:06 +0100 Subject: [PATCH] CPU usage getter for apple. --- client/TracySysTime.cpp | 16 +++++++++++++++- client/TracySysTime.hpp | 2 +- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/client/TracySysTime.cpp b/client/TracySysTime.cpp index f0decd96..c679dd80 100644 --- a/client/TracySysTime.cpp +++ b/client/TracySysTime.cpp @@ -8,6 +8,9 @@ # include # include # include +# elif defined __APPLE__ +# include +# include # endif namespace tracy @@ -46,6 +49,17 @@ void SysTime::ReadTimes() used = user + nice + system; } +# elif defined __APPLE__ + +void SysTime::ReadTimes() +{ + host_cpu_load_info_data_t info; + mach_msg_type_number_t cnt = HOST_CPU_LOAD_INFO_COUNT; + host_statistics( mach_host_self(), HOST_CPU_LOAD_INFO, reinterpret_cast( &info ), &cnt ); + used = info.cpu_ticks[CPU_STATE_USER] + info.cpu_ticks[CPU_STATE_NICE] + info.cpu_ticks[CPU_STATE_SYSTEM]; + idle = info.cpu_ticks[CPU_STATE_IDLE]; +} + #endif SysTime::SysTime() @@ -65,7 +79,7 @@ float SysTime::Get() #if defined _WIN32 || defined __CYGWIN__ return diffUsed == 0 ? 0 : ( diffUsed - diffIdle ) * 100.f / diffUsed; -#elif defined __linux__ +#elif defined __linux__ || defined __APPLE__ const auto total = diffUsed + diffIdle; return total == 0 ? 0 : diffUsed * 100.f / total; #endif diff --git a/client/TracySysTime.hpp b/client/TracySysTime.hpp index 32ce5fa0..e9581a61 100644 --- a/client/TracySysTime.hpp +++ b/client/TracySysTime.hpp @@ -1,7 +1,7 @@ #ifndef __TRACYSYSTIME_HPP__ #define __TRACYSYSTIME_HPP__ -#if defined _WIN32 || defined __CYGWIN__ || defined __linux__ +#if defined _WIN32 || defined __CYGWIN__ || defined __linux__ || defined __APPLE__ # define TRACY_HAS_SYSTIME #endif