kernel: Replace the remaining __amd64__ with __x86_64__ for consistency.
[dragonfly.git] / test / sysperf / blib.c
blob99ff2824ba97808b8f2a6a50f25d56c8172b2f6b
1 /*
2 * BLIB.C
4 * Simple benchmarking library
6 * $DragonFly: src/test/sysperf/blib.c,v 1.6 2007/08/21 19:23:46 corecode Exp $
7 */
9 #include <sys/types.h>
10 #include <sys/time.h>
11 #include <stdio.h>
12 #include <stdlib.h>
13 #include <stdarg.h>
15 static struct timeval tv1;
16 static struct timeval tv2;
17 static long long last_us;
19 void
20 start_timing(void)
22 gettimeofday(&tv1, NULL);
25 int
26 stop_timing(long long count, const char *ctl, ...)
28 long long us;
29 va_list va;
31 gettimeofday(&tv2, NULL);
32 us = (tv2.tv_usec - tv1.tv_usec) + (tv2.tv_sec - tv1.tv_sec) * 1000000LL;
33 last_us = us;
34 if (ctl == NULL) /* dummy call to pre-cache */
35 return(us > 1000000);
37 va_start(va, ctl);
38 vfprintf(stderr, ctl, va);
39 va_end(va);
41 fprintf(stderr, " %6.3fs %lld loops = %6.3fuS/loop\n",
42 (double)us / 1000000.0,
43 count,
44 (double)us / (double)count
47 tv1 = tv2;
49 return(0);
52 int
53 stop_timing2(long long count, long long us, const char *ctl, ...)
55 va_list va;
57 va_start(va, ctl);
58 vfprintf(stderr, ctl, va);
59 va_end(va);
61 fprintf(stderr, " %6.3fs %lld loops = %6.3fnS/loop\n",
62 (double)us / 1000000.0,
63 count,
64 (double)us * 1000.0 / (double)count
66 return(0);
69 long long
70 get_timing(void)
72 return (last_us);
75 void
76 nop(void)