aboutsummaryrefslogtreecommitdiff
path: root/benchtests/bench-timing.h
diff options
context:
space:
mode:
authorWill Newton <will.newton@linaro.org>2013-09-11 13:07:33 +0100
committerWill Newton <will.newton@linaro.org>2013-09-11 15:18:20 +0100
commitb987c776723eea2f223885289c466386f12e823a (patch)
treec03a7eed4aabf2c8397cda6366509a589ece16a6 /benchtests/bench-timing.h
parentc0e0f3b2979ed2046547cbc800256dabc03d1944 (diff)
downloadglibc-b987c776723eea2f223885289c466386f12e823a.tar
glibc-b987c776723eea2f223885289c466386f12e823a.tar.gz
glibc-b987c776723eea2f223885289c466386f12e823a.tar.bz2
glibc-b987c776723eea2f223885289c466386f12e823a.zip
benchtests: Rename argument to TIMING_INIT macro.
The TIMING_INIT macro currently sets the number of loop iterations to 1000, which limits usefulness. Make the argument a clock resolution value and multiply by 1000 in bench-skeleton.c instead to allow easier reuse. ChangeLog: 2013-09-11 Will Newton <will.newton@linaro.org> * benchtests/bench-timing.h (TIMING_INIT): Rename ITERS parameter to RES. Remove hardcoded 1000 value. * benchtests/bench-skeleton.c (main): Pass RES parameter to TIMING_INIT and multiply result by 1000.
Diffstat (limited to 'benchtests/bench-timing.h')
-rw-r--r--benchtests/bench-timing.h14
1 files changed, 6 insertions, 8 deletions
diff --git a/benchtests/bench-timing.h b/benchtests/bench-timing.h
index 009813bb80..48a85210a0 100644
--- a/benchtests/bench-timing.h
+++ b/benchtests/bench-timing.h
@@ -25,10 +25,10 @@
hp_timing_t _dl_hp_timing_overhead;
typedef hp_timing_t timing_t;
-# define TIMING_INIT(iters) \
+# define TIMING_INIT(res) \
({ \
HP_TIMING_DIFF_INIT(); \
- (iters) = 1000; \
+ (res) = 1; \
})
# define TIMING_NOW(var) HP_TIMING_NOW (var)
@@ -43,15 +43,13 @@ typedef hp_timing_t timing_t;
#else
typedef uint64_t timing_t;
-/* Measure 1000 times the resolution of the clock. So for a 1ns
- resolution clock, we measure 1000 iterations of the function call at a
- time. Measurements close to the minimum clock resolution won't make
- much sense, but it's better than having nothing at all. */
-# define TIMING_INIT(iters) \
+/* Measure the resolution of the clock so we can scale the number of
+ benchmark iterations by this value. */
+# define TIMING_INIT(res) \
({ \
struct timespec start; \
clock_getres (CLOCK_PROCESS_CPUTIME_ID, &start); \
- (iters) = 1000 * start.tv_nsec; \
+ (res) = start.tv_nsec; \
})
# define TIMING_NOW(var) \