From b68abaaa3c0d5128bb603683fe331e56df528f45 Mon Sep 17 00:00:00 2001 From: Andrew Jacobs Date: Tue, 28 Jun 2016 22:52:24 +0100 Subject: [PATCH] Added Linux timing code --- program.cc | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/program.cc b/program.cc index e1f7981..83ce1b7 100644 --- a/program.cc +++ b/program.cc @@ -27,7 +27,11 @@ using namespace std; #include +#ifdef WINDOWS #include "Windows.h" +#else +#include +#endif #include "mem816.h" #include "emu816.h" @@ -150,18 +154,31 @@ int main(int argc, char **argv) return (1); } +#ifdef WINDOWS LARGE_INTEGER freq, start, end; QueryPerformanceFrequency(&freq); QueryPerformanceCounter(&start); +#else + timespec start, end; + + clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &start); +#endif setup(); - while (!emu.isStopped ()) + while (!emu.isStopped()) loop(); +#ifdef LINUX QueryPerformanceCounter(&end); double secs = (end.QuadPart - start.QuadPart) / (double) freq.QuadPart; +#else + clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &end); + + double secs = (end.tv_sec + end.tv_nsec / 1000000000.0) + - (start.tv_sec + start.tv_nsec / 1000000000.0); +#endif double speed = emu.getCycles() / secs;