bench: print out results in MB/sec instead of nanoseconds/byte and add more detail...
authorzooko <zooko@zooko.com>
Sun, 6 Mar 2011 05:27:08 +0000 (10:57 +0530)
committerzooko <zooko@zooko.com>
Sun, 6 Mar 2011 05:27:08 +0000 (10:57 +0530)
Ignore-this: d12d509010f0beb0e94b5fd5c532d77a

darcs-hash:b629d668137adb17a6b29a65dbd97f3be920bdf7

zfec/bench/bench_zfec.py

index fceaed4f3e98003158743041aecb6d8daf100d05..93cb6254e3116dcb69dbaeaa3358aee7c25c3a6b 100644 (file)
@@ -70,17 +70,26 @@ def _encode_data_fec(N):
     fecenc.encode(ds)
 
 def bench(k, m):
+    SIZE = 10**6
+    MAXREPS = 64
     # for f in [_encode_file_stringy_easyfec, _encode_file_stringy, _encode_file, _encode_file_not_really,]:
     # for f in [_encode_file,]:
     # for f in [_encode_file_not_really, _encode_file_not_really_and_hash, _encode_file, _encode_file_and_hash,]:
     # for f in [_encode_data_not_really, _encode_data_easyfec, _encode_data_fec,]:
-    print "measuring encoding of data with K=%d, M=%d, reporting results in nanoseconds per byte after encoding 4 MB..." % (k, m)
+    print "measuring encoding of data with K=%d, M=%d, reporting results in nanoseconds per byte after encoding %d bytes %d times in a row..." % (k, m, SIZE, MAXREPS)
     for f in [_encode_data_fec,]:
         def _init_func(size):
             return _make_new_rand_data(size, k, m)
-        for BSIZE in [2**22]:
-            benchutil.rep_bench(f, n=BSIZE, initfunc=_init_func, MAXREPS=64, MAXTIME=None, UNITS_PER_SECOND=1000000000)
-            benchutil.print_bench_footer(UNITS_PER_SECOND=1000000000)
+        for BSIZE in [SIZE]:
+            results = benchutil.rep_bench(f, n=BSIZE, initfunc=_init_func, MAXREPS=MAXREPS, MAXTIME=None, UNITS_PER_SECOND=1000000000)
+            print "and now represented in MB/s..."
+            print
+            best = results['best']
+            mean = results['mean']
+            worst = results['worst']
+            print "best:  % 4.3f MB/sec" % (10**3 / best)
+            print "mean:  % 4.3f MB/sec" % (10**3 / mean)
+            print "worst: % 4.3f MB/sec" % (10**3 / worst)
 
 k = K
 m = M