From bcc99057351132530c670f5a46d97c4e8bf64727 Mon Sep 17 00:00:00 2001
From: Achmad Imam Kistijantoro <imam@informatika.org>
Date: Tue, 11 Dec 2018 16:02:02 +0700
Subject: [PATCH] Upload New File

---
 timer.h | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)
 create mode 100644 timer.h

diff --git a/timer.h b/timer.h
new file mode 100644
index 0000000..6f4fb4a
--- /dev/null
+++ b/timer.h
@@ -0,0 +1,54 @@
+#ifndef TIMER_H
+#define TIMER_H
+
+#include <stdlib.h>
+
+#ifdef WIN32
+  #define WIN32_LEAN_AND_MEAN
+  #include <windows.h>
+#else
+  #ifndef __USE_BSD
+    #define __USE_BSD
+  #endif
+  #include <sys/time.h>
+#endif
+
+#ifdef WIN32
+double PCFreq = 0.0;
+__int64 timerStart = 0;
+#else
+struct timeval timerStart;
+#endif
+
+void StartTimer()
+{
+#ifdef WIN32
+  LARGE_INTEGER li;
+  if(!QueryPerformanceFrequency(&li))
+    printf("QueryPerformanceFrequency failed!\n");
+
+  PCFreq = (double)li.QuadPart/1000.0;
+
+  QueryPerformanceCounter(&li);
+  timerStart = li.QuadPart;
+#else
+  gettimeofday(&timerStart, NULL);
+#endif
+}
+
+// time elapsed in ms
+double GetTimer()
+{
+#ifdef WIN32
+  LARGE_INTEGER li;
+  QueryPerformanceCounter(&li);
+  return (double)(li.QuadPart-timerStart)/PCFreq;
+#else
+  struct timeval timerStop, timerElapsed;
+  gettimeofday(&timerStop, NULL);
+  timersub(&timerStop, &timerStart, &timerElapsed);
+    return timerElapsed.tv_sec*1000.0+timerElapsed.tv_usec/1000.0;
+#endif
+}
+
+#endif // TIMER_H
-- 
GitLab