ref: cf1c6aa5e3025d81896eba7d3f0858b37bdc7309
parent: 99cc92c31eadabe470d781af2f5fd4410594e10e
author: Ori Bernstein <[email protected]>
date: Sun Sep 3 20:08:07 EDT 2017
Improve sampling of benchmark.
--- a/lib/testr/testr.myr
+++ b/lib/testr/testr.myr
@@ -21,8 +21,6 @@
const softfail : (ctx : ctx#, msg : byte[:], args : ... -> void)
;;
-const Nsamp = 1000;
-
const bench = {specs
std.put("MTEST {}\n", specs.len)
for s : specs
@@ -78,7 +76,7 @@
}
const benchspec = {ts
- var avg, m, d, n
+ var avg, m, d, n, nsamp
var start, dt
var ctx : ctx
var jmpbuf
@@ -90,9 +88,21 @@
avg = 0.0;
m = 0.0;
n = 0.0;
+ nsamp = 0
std.put("test {} <<{{!\n", ts.name)
if !std.setjmp(&jmpbuf)
- for var i = 0; i < Nsamp; i++
+ /* estimate samples */
+ start = std.now()
+ ts.fn(&ctx)
+ dt = (std.now() - start : flt64)
+
+ if dt == 0.0
+ nsamp = 1000_000
+ else
+ nsamp = (1000_000.0/dt : std.time)
+ ;;
+
+ for var i = 0; i < nsamp; i++
n +=1.0;
start = std.now()
ts.fn(&ctx)
@@ -104,7 +114,7 @@
;;
if ctx.ok
- std.put("!}}>> timing {} {} {}\n", Nsamp, avg, m)
+ std.put("!}}>> timing {} {} {}\n", nsamp, avg, m)
else
std.put("!}}>> fail {}\n", ctx.reason)
std.slfree(ctx.reason)
--- a/mbld/opts.myr
+++ b/mbld/opts.myr
@@ -89,7 +89,7 @@
i = 0
a = [0, 0, 0]
- for e in std.bysplit(v, ".")
+ for e : std.bysplit(v, ".")
match std.intparse(e)
| `std.Some n: a[i++] = n
| `std.None: continue
--- a/support/dumpleak.myr
+++ b/support/dumpleak.myr
@@ -78,7 +78,7 @@
ptr = get64(path, f)
sz = get64(path, f)
stk = [][:]
- for var i = 0; i < 10; i++
+ for var i = 0; i < 20; i++
std.slpush(&stk, get64(path, f))
;;
stats.allocs++