From ef55177ed6a6509d725cae39739c1bd68e6c4b30 Mon Sep 17 00:00:00 2001 From: Glenn Rice Date: Sat, 20 Nov 2010 00:22:56 +0000 Subject: Implement JitIL profiling on linux. I also tried implementing __rdtsc using assembly and didn't really see a speed improvement so went with clock_gettime. Also changed other gettimeofday calls to clock_gettime, which is supposedly more accurate. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6447 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/Common/Src/Timer.cpp | 27 +++++++++------------------ 1 file changed, 9 insertions(+), 18 deletions(-) (limited to 'Source/Core/Common/Src/Timer.cpp') diff --git a/Source/Core/Common/Src/Timer.cpp b/Source/Core/Common/Src/Timer.cpp index 67bb6874b4..d4d9897006 100644 --- a/Source/Core/Common/Src/Timer.cpp +++ b/Source/Core/Common/Src/Timer.cpp @@ -21,8 +21,6 @@ #include #include #include -#else -#include #endif #include "Common.h" @@ -37,9 +35,9 @@ u32 Timer::GetTimeMs() #ifdef _WIN32 return timeGetTime(); #else - struct timeval t; - (void)gettimeofday(&t, NULL); - return((u32)(t.tv_sec * 1000 + t.tv_usec / 1000)); + struct timespec t; + (void)clock_gettime(CLOCK_MONOTONIC_RAW, &t); + return ((u32)(t.tv_sec * 1000 + t.tv_nsec / 1000000)); #endif } @@ -157,13 +155,6 @@ void Timer::RestoreResolution() #endif } -#ifdef __GNUC__ -void _time64(u64* t) -{ - *t = 0; //TODO -} -#endif - // Get the number of seconds since January 1 1970 u64 Timer::GetTimeSinceJan1970() { @@ -213,9 +204,9 @@ std::string Timer::GetTimeFormatted() (void)::ftime(&tp); sprintf(formattedTime, "%s:%03i", tmp, tp.millitm); #else - struct timeval t; - (void)gettimeofday(&t, NULL); - sprintf(formattedTime, "%s:%03d", tmp, (int)(t.tv_usec / 1000)); + struct timespec t; + (void)clock_gettime(CLOCK_REALTIME, &t); + sprintf(formattedTime, "%s:%03d", tmp, (int)(t.tv_nsec / 1000000)); #endif return std::string(formattedTime); @@ -229,8 +220,8 @@ double Timer::GetDoubleTime() struct timeb tp; (void)::ftime(&tp); #else - struct timeval t; - (void)gettimeofday(&t, NULL); + struct timespec t; + (void)clock_gettime(CLOCK_REALTIME, &t); #endif // Get continuous timestamp u64 TmpSeconds = Common::Timer::GetTimeSinceJan1970(); @@ -246,7 +237,7 @@ double Timer::GetDoubleTime() #ifdef _WIN32 double ms = tp.millitm / 1000.0 / 1000.0; #else - double ms = t.tv_usec / 1000.0 / 1000.0; + double ms = t.tv_nsec / 1000000000.0; #endif double TmpTime = Seconds + ms; -- cgit v1.2.3