diff options
Diffstat (limited to 'bench/rulescomp.c')
-rw-r--r-- | bench/rulescomp.c | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/bench/rulescomp.c b/bench/rulescomp.c index 16f2bf5..650ccf3 100644 --- a/bench/rulescomp.c +++ b/bench/rulescomp.c @@ -24,6 +24,7 @@ #include <time.h> #include "../test/test.h" +#include "bench.h" #define BENCHMARK_ITERATIONS 2500 @@ -32,7 +33,8 @@ main(int argc, char *argv[]) { struct xkb_context *ctx; struct xkb_keymap *keymap; - struct timespec start, stop, elapsed; + struct bench_timer timer; + char *elapsed; int i; ctx = test_get_context(0); @@ -41,23 +43,20 @@ main(int argc, char *argv[]) xkb_context_set_log_level(ctx, XKB_LOG_LEVEL_CRITICAL); xkb_context_set_log_verbosity(ctx, 0); - clock_gettime(CLOCK_MONOTONIC, &start); + bench_timer_reset(&timer); + + bench_timer_start(&timer); for (i = 0; i < BENCHMARK_ITERATIONS; i++) { keymap = test_compile_rules(ctx, "evdev", "evdev", "us", "", ""); assert(keymap); xkb_keymap_unref(keymap); } - clock_gettime(CLOCK_MONOTONIC, &stop); - - elapsed.tv_sec = stop.tv_sec - start.tv_sec; - elapsed.tv_nsec = stop.tv_nsec - start.tv_nsec; - if (elapsed.tv_nsec < 0) { - elapsed.tv_nsec += 1000000000; - elapsed.tv_sec--; - } + bench_timer_stop(&timer); - fprintf(stderr, "compiled %d keymaps in %ld.%09lds\n", - BENCHMARK_ITERATIONS, elapsed.tv_sec, elapsed.tv_nsec); + elapsed = bench_timer_get_elapsed_time_str(&timer); + fprintf(stderr, "compiled %d keymaps in %ss\n", + BENCHMARK_ITERATIONS, elapsed); + free(elapsed); xkb_context_unref(ctx); return 0; |