futhark-0.7.3: rts/c/timing.h
/* Some simple utilities for wall-clock timing.
The function get_wall_time() returns the wall time in microseconds
(with an unspecified offset).
*/
#ifdef _WIN32
#include <windows.h>
static int64_t get_wall_time(void) {
LARGE_INTEGER time,freq;
assert(QueryPerformanceFrequency(&freq));
assert(QueryPerformanceCounter(&time));
return ((double)time.QuadPart / freq.QuadPart) * 1000000;
}
#else
/* Assuming POSIX */
#include <time.h>
#include <sys/time.h>
static int64_t get_wall_time(void) {
struct timeval time;
assert(gettimeofday(&time,NULL) == 0);
return time.tv_sec * 1000000 + time.tv_usec;
}
#endif