From: Jeff R. Allen Date: Fri, 2 Nov 2012 18:13:51 +0000 (+0800) Subject: misc/benchcmp: show memory statistics, when available X-Git-Tag: go1.1rc2~1971 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=d5449eafb95cf6b622ad7f569c88e596f9a710a3;p=gostls13.git misc/benchcmp: show memory statistics, when available R=minux.ma, dave, extraterrestrial.neighbour, rsc CC=golang-dev https://golang.org/cl/6587069 --- diff --git a/misc/benchcmp b/misc/benchcmp index 015e7d2b28..b98ee2b2ff 100755 --- a/misc/benchcmp +++ b/misc/benchcmp @@ -7,8 +7,13 @@ case "$1" in -*) echo 'usage: benchcmp old.txt new.txt' >&2 echo >&2 - echo 'Each input file should be go test -test.run=NONE -test.bench=. > [old,new].txt' >&2 + echo 'Each input file should be from:' >&2 + echo ' go test -test.run=NONE -test.bench=. > [old,new].txt' >&2 + echo >&2 echo 'Benchcmp compares the first and last for each benchmark.' >&2 + echo >&2 + echo 'If -test.benchmem=true is added to the "go test" command' >&2 + echo 'benchcmp will also compare memory allocations.' >&2 exit 2 esac @@ -27,10 +32,21 @@ $1 ~ /Benchmark/ && $4 == "ns/op" { new[$1] = $3 if($6 == "MB/s") newmb[$1] = $5 + + # allocs/op might be at $8 or $10 depending on if + # SetBytes was used or not. + if($8 == "allocs/op") + newalloc[$1] = $7 + if($10 == "allocs/op") + newalloc[$1] = $9 } else { old[$1] = $3 - if($6 = "MB/s") + if($6 == "MB/s") oldmb[$1] = $5 + if($8 == "allocs/op") + oldalloc[$1] = $7 + if($10 == "allocs/op") + oldalloc[$1] = $9 } } @@ -62,5 +78,21 @@ END { sprintf("%.2f", newmb[what]), sprintf("%.2f", newmb[what]/oldmb[what])) } + + # print allocs + anyalloc = 0 + for(i=0; i