From 0c717a13ccfdc8148337ccf5634720e1b77728e5 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Fri, 5 Mar 2010 11:00:47 -0500 Subject: Try harder to warm up the cache in sandglass_bench_*(). Populating branch-prediction tables etc. may take more than one go-round. --- src/sandglass.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/sandglass.h b/src/sandglass.h index 9e37578..b17d2a2 100644 --- a/src/sandglass.h +++ b/src/sandglass.h @@ -122,6 +122,8 @@ int sandglass_elapse(sandglass_t *sandglass); do { \ /* Warm up the cache for these functions */ \ sandglass_begin(sandglass); \ + sandglass_elapse(sandglass); \ + sandglass_begin(sandglass); \ sandglass_elapse(sandglass); \ \ /* Time an empty loop for our baseline */ \ @@ -135,6 +137,7 @@ int sandglass_elapse(sandglass_t *sandglass); (sandglass)->baseline = (sandglass)->grains; \ \ /* Warm up the cache for our routine */ \ + routine; \ routine; \ \ /* Time our routine in a loop */ \ @@ -158,6 +161,8 @@ int sandglass_elapse(sandglass_t *sandglass); do { \ /* Warm up the cache for these functions */ \ sandglass_begin(sandglass); \ + sandglass_elapse(sandglass); \ + sandglass_begin(sandglass); \ sandglass_elapse(sandglass); \ \ /* Time an empty routine for our baseline */ \ @@ -166,6 +171,7 @@ int sandglass_elapse(sandglass_t *sandglass); (sandglass)->baseline = (sandglass)->grains; \ \ /* Warm up the cache for our routine */ \ + routine; \ routine; \ \ /* Time the routine */ \ @@ -182,6 +188,8 @@ int sandglass_elapse(sandglass_t *sandglass); do { \ /* Warm up the cache for these functions */ \ sandglass_begin(sandglass); \ + sandglass_elapse(sandglass); \ + sandglass_begin(sandglass); \ sandglass_elapse(sandglass); \ \ /* Time an empty loop for our baseline */ \ -- cgit v1.2.3