This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
bench.pl: display large values as 'Inf'
authorDavid Mitchell <davem@iabyn.com>
Sat, 21 Oct 2017 14:19:28 +0000 (15:19 +0100)
committerDavid Mitchell <davem@iabyn.com>
Mon, 23 Oct 2017 10:52:02 +0000 (11:52 +0100)
When calculating percentages, you might end up with something like

    1 / 0.0000001

which really means that the new perl had one cache miss (say) and the old
perl had zero misses, but due to measurement noise, the 0 wasn't measured
as quite 0.

So if the value is more than a million, display as 'Inf' instead.

Porting/bench.pl

index 05cfae5..55c1786 100755 (executable)
@@ -1513,6 +1513,11 @@ sub grind_format_cell {
     if (!defined $val) {
         return sprintf "%*s", $width, '-';
     }
+    elsif (abs($val) >= 1_000_000) {
+        # avoid displaying very large numbers (which might be the
+        # result of e.g. 1 / 0.000001)
+        return sprintf "%*s", $width, 'Inf';
+    }
     elsif ($OPTS{raw}) {
         return sprintf "%*.1f", $width, $val;
     }