public inbox for glibc-cvs@sourceware.org
help / color / mirror / Atom feed
* [glibc] benchtests: Improve reliability of memcmp benchmarks
@ 2021-09-24 23:05 Noah Goldstein
  0 siblings, 0 replies; only message in thread
From: Noah Goldstein @ 2021-09-24 23:05 UTC (permalink / raw)
  To: glibc-cvs

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a1c056c9d06a6aa184fa3c52a5bbd3562ac386e8

commit a1c056c9d06a6aa184fa3c52a5bbd3562ac386e8
Author: Noah Goldstein <goldstein.w.n@gmail.com>
Date:   Sat Sep 18 16:13:34 2021 -0500

    benchtests: Improve reliability of memcmp benchmarks
    
    No bug. Remove reallocation of bufs between implementation tests. Move
    initialization outside of foreach implementation test loop. Increase
    iteration count.
    
    Generally before this commit was seeing a great deal of variability
    between runs. The goal of this commit is to make the results more
    reliable.
    
    Benchtests build and bench-memcmp succeeding.
    
    Signed-off-by: Noah Goldstein <goldstein.w.n@gmail.com>

Diff:
---
 benchtests/bench-memcmp.c | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/benchtests/bench-memcmp.c b/benchtests/bench-memcmp.c
index 744c7ec5ba..0d6a93bf29 100644
--- a/benchtests/bench-memcmp.c
+++ b/benchtests/bench-memcmp.c
@@ -63,7 +63,7 @@ static void
 do_one_test (json_ctx_t *json_ctx, impl_t *impl, const CHAR *s1,
 	     const CHAR *s2, size_t len, int exp_result)
 {
-  size_t i, iters = INNER_LOOP_ITERS8;
+  size_t i, iters = INNER_LOOP_ITERS_LARGE;
   timing_t start, stop, cur;
 
   TIMING_NOW (start);
@@ -103,20 +103,19 @@ do_test (json_ctx_t *json_ctx, size_t align1, size_t align2, size_t len,
   json_attr_uint (json_ctx, "result", (double) exp_result);
   json_array_begin (json_ctx, "timings");
 
-  FOR_EACH_IMPL (impl, 0)
-    {
-      s1 = (CHAR *) (buf1 + align1);
-      s2 = (CHAR *) (buf2 + align2);
+  s1 = (CHAR *)(buf1 + align1);
+  s2 = (CHAR *)(buf2 + align2);
 
-      for (i = 0; i < len; i++)
-	s1[i] = s2[i] = 1 + (23 << ((CHARBYTES - 1) * 8)) * i % MAX_CHAR;
+  for (i = 0; i < len; i++)
+    s1[i] = s2[i] = 1 + (23 << ((CHARBYTES - 1) * 8)) * i % MAX_CHAR;
 
-      s1[len] = align1;
-      s2[len] = align2;
-      s2[len - 1] -= exp_result;
+  s1[len] = align1;
+  s2[len] = align2;
+  s2[len - 1] -= exp_result;
 
+  FOR_EACH_IMPL (impl, 0)
+    {
       do_one_test (json_ctx, impl, s1, s2, len, exp_result);
-      alloc_bufs ();
     }
 
   json_array_end (json_ctx);


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-09-24 23:05 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-24 23:05 [glibc] benchtests: Improve reliability of memcmp benchmarks Noah Goldstein

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).