From 95cec6a5ecfdc2a75ba041a6e9f9cd568d53a6fc Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Wed, 27 Apr 2016 21:39:19 +0200 Subject: More accurate benchmarking MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- bench/benchmark-zrand.c | 29 +++++++---------------------- 1 file changed, 7 insertions(+), 22 deletions(-) (limited to 'bench/benchmark-zrand.c') diff --git a/bench/benchmark-zrand.c b/bench/benchmark-zrand.c index 714ba78..2672f0e 100644 --- a/bench/benchmark-zrand.c +++ b/bench/benchmark-zrand.c @@ -1,43 +1,28 @@ -#include -#include - -#include "../zahl.h" - - -#ifndef CLOCK_MONOTONIC_RAW -# define CLOCK_MONOTONIC_RAW CLOCK_MONOTONIC -#endif +#include "benchmark.h" #define BENCHMARK(INSTRUCTION, FAST)\ do {\ i = FAST ? 1000000L : 1000L;\ - clock_gettime(CLOCK_MONOTONIC_RAW, &start);\ + TIC;\ while (i--) {\ INSTRUCTION;\ }\ - clock_gettime(CLOCK_MONOTONIC_RAW, &end);\ - end.tv_sec -= start.tv_sec;\ - end.tv_nsec -= start.tv_nsec;\ - if (end.tv_nsec < 0) {\ - end.tv_nsec += 1000000000L;\ - end.tv_sec -= 1;\ - }\ - printf("%s: %lli.%09li %s\n",\ - #INSTRUCTION,\ - (long long int)(end.tv_sec), end.tv_nsec,\ - FAST ? "µs" : "ms");\ + TOC;\ + printf("%s: %s %s\n",\ + #INSTRUCTION, STIME, FAST ? "µs" : "ms");\ } while (0) int main(int argc, char *argv[]) { - struct timespec start, end; z_t r, n; jmp_buf jmp; size_t i; + benchmark_init(); + if (setjmp(jmp)) { zperror(argv[0]); return 1; -- cgit v1.2.3-70-g09d2