File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -64,6 +64,14 @@ done < <(
6464
6565failures=0
6666
67+ float_delta () {
68+ awk -v actual=" $1 " -v limit=" $2 " ' BEGIN { printf "%.4f", actual - limit }'
69+ }
70+
71+ float_exceeds () {
72+ awk -v actual=" $1 " -v limit=" $2 " ' BEGIN { exit (actual > limit) ? 0 : 1 }'
73+ }
74+
6775echo
6876printf " %-40s %12s %12s %12s %12s %12s %14s\n" " Benchmark" " ns/op" " max_ns/op" " delta_ns" " allocs/op" " max_allocs" " delta_allocs"
6977for bench in " ${benchmarks[@]} " ; do
@@ -78,15 +86,15 @@ for bench in "${benchmarks[@]}"; do
7886 continue
7987 fi
8088
81- ns_delta=$(( ns - max_ns_value))
82- allocs_delta=$(( allocs - max_allocs_value))
83- printf " %-40s %12s %12s %12d %12s %12s %14d \n" " $bench " " $ns " " $max_ns_value " " $ns_delta " " $allocs " " $max_allocs_value " " $allocs_delta "
89+ ns_delta=" $( float_delta " $ns " " $ max_ns_value" ) "
90+ allocs_delta=" $( float_delta " $ allocs" " $ max_allocs_value" ) "
91+ printf " %-40s %12s %12s %12s %12s %12s %14s \n" " $bench " " $ns " " $max_ns_value " " $ns_delta " " $allocs " " $max_allocs_value " " $allocs_delta "
8492
85- if (( ns > max_ns_value )) ; then
93+ if float_exceeds " $ns " " $ max_ns_value" ; then
8694 echo " regression: $bench ns/op $ns exceeds $max_ns_value " >&2
8795 failures=$(( failures + 1 ))
8896 fi
89- if (( allocs > max_allocs_value )) ; then
97+ if float_exceeds " $ allocs" " $ max_allocs_value" ; then
9098 echo " regression: $bench allocs/op $allocs exceeds $max_allocs_value " >&2
9199 failures=$(( failures + 1 ))
92100 fi
You can’t perform that action at this time.
0 commit comments