1
0
mirror of https://github.com/wolfpld/tracy.git synced 2025-03-20 07:40:02 +08:00

CPU usage retrieval.

This commit is contained in:
Bartosz Taudul
2019-02-21 21:59:02 +01:00
parent c8fb3f24cc
commit 9f4f5bcb63
6 changed files with 130 additions and 0 deletions
+59
View File
@@ -0,0 +1,59 @@
#include "TracySysTime.hpp"
#ifdef TRACY_HAS_SYSTIME
# ifdef _WIN32
# include <windows.h>
# endif
namespace tracy
{
# ifdef _WIN32
static inline uint64_t ConvertTime( const FILETIME& t )
{
return ( uint64_t( t.dwHighDateTime ) << 32 ) | uint64_t( t.dwLowDateTime );
}
SysTime::SysTime()
{
FILETIME idleTime;
FILETIME kernelTime;
FILETIME userTime;
GetSystemTimes( &idleTime, &kernelTime, &userTime );
idle = ConvertTime( idleTime );
const auto kernel = ConvertTime( kernelTime );
const auto user = ConvertTime( userTime );
used = kernel + user;
}
float SysTime::Get()
{
FILETIME idleTime;
FILETIME kernelTime;
FILETIME userTime;
GetSystemTimes( &idleTime, &kernelTime, &userTime );
const auto newIdle = ConvertTime( idleTime );
const auto kernel = ConvertTime( kernelTime );
const auto user = ConvertTime( userTime );
const auto newUsed = kernel + user;
const auto diffIdle = newIdle - idle;
const auto diffUsed = newUsed - used;
idle = newIdle;
used = newUsed;
return diffUsed == 0 ? 0 : ( diffUsed - diffIdle ) * 100.f / diffUsed;
}
# endif
}
#endif