27 lines
615 B
C
27 lines
615 B
C
/* Simple timer, for use in benchmark reporting. */
|
|
|
|
#include <unistd.h>
|
|
#include <sys/time.h>
|
|
|
|
#define JEMALLOC_CLOCK_GETTIME defined(_POSIX_MONOTONIC_CLOCK) \
|
|
&& _POSIX_MONOTONIC_CLOCK >= 0
|
|
|
|
typedef struct {
|
|
#ifdef _WIN32
|
|
FILETIME ft0;
|
|
FILETIME ft1;
|
|
#elif JEMALLOC_CLOCK_GETTIME
|
|
struct timespec ts0;
|
|
struct timespec ts1;
|
|
int clock_id;
|
|
#else
|
|
struct timeval tv0;
|
|
struct timeval tv1;
|
|
#endif
|
|
} timedelta_t;
|
|
|
|
void timer_start(timedelta_t *timer);
|
|
void timer_stop(timedelta_t *timer);
|
|
uint64_t timer_usec(const timedelta_t *timer);
|
|
void timer_ratio(timedelta_t *a, timedelta_t *b, char *buf, size_t buflen);
|