mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-23 03:10:05 +00:00
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.
This commit is contained in:
parent
c0e0f3b297
commit
b987c77672
@ -1,3 +1,10 @@
|
||||
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.
|
||||
|
||||
2013-09-10 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
|
||||
|
||||
* sysdeps/powerpc/fpu/libm-test-ulps: Update.
|
||||
|
@ -53,9 +53,11 @@ main (int argc, char **argv)
|
||||
|
||||
memset (&runtime, 0, sizeof (runtime));
|
||||
|
||||
unsigned long iters;
|
||||
unsigned long iters, res;
|
||||
|
||||
TIMING_INIT (iters);
|
||||
TIMING_INIT (res);
|
||||
|
||||
iters = 1000 * res;
|
||||
|
||||
for (int v = 0; v < NUM_VARIANTS; v++)
|
||||
{
|
||||
|
@ -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) \
|
||||
|
Loading…
Reference in New Issue
Block a user