Bencher-Backend
view release on metacpan or search on metacpan
- Avoid perl undef warning.
1.047 2020-01-12 Released-By: PERLANCAR; Urgency: medium
- Allow specifying field format in add_field().
- [experimental] Replace formatter AddVsSlowest with AddComparisonFields
(which adds pct_faster_vs_slowest, pct_slower_vs_fastest) to make it
easy to say "xx times/percent slower than ..." as well as "xx
times/percent faster than ...".
1.046 2019-11-29 Released-By: PERLANCAR; Urgency: high
- Merge releases 1.045 & 1.045.1.
1.045.1 2019-11-29 Released-By: PERLANCAR; Urgency: medium
- Update coerce rule names (Data::Sah::Coerce 0.034+). UPDATE
lib/Bencher/Formatter/AddComparisonFields.pm view on Meta::CPAN
if !defined($slowest_time) || $slowest_time < $rit->{time};
$fastest_time = $rit->{time}
if !defined($fastest_time) || $fastest_time > $rit->{time};
}
return unless defined $slowest_time;
$self->add_field(
$envres,
'pct_faster_vs_slowest',
{after=>'time', align=>'number', format=>'percent'},
sub {
for my $rit (@{$envres->[2]}) {
$rit->{pct_faster_vs_slowest} =
($slowest_time - $rit->{time}) / $rit->{time};;
}
}
);
$self->add_field(
$envres,
'pct_slower_vs_fastest',
{after=>'pct_faster_vs_slowest', align=>'number', format=>'percent'},
sub {
for my $rit (@{$envres->[2]}) {
$rit->{pct_slower_vs_fastest} =
($rit->{time} - $fastest_time) / $fastest_time;
}
}
);
}
1;
lib/Bencher/Formatter/RenderAsBenchmarkPm.pm view on Meta::CPAN
push @rows, [
$it->{_succinct_name},
(defined($it->{rate}) ? "$it->{rate}/s" : sprintf("%.1f/s", 1000/$it->{time})),
];
for my $j (0..$#{$items}) {
my $pct;
if ($i == $j) {
$pct = "--";
} else {
if ($items->[$j]{time} < $it->{time}) {
# item i is slower than item j by N percent
$pct = -(1 - $items->[$j]{time} / $it->{time}) * 100;
} else {
# item i is faster than item j by N percent
$pct = ($items->[$j]{time} / $it->{time} -1) * 100;
}
$pct = sprintf("%d%%", $pct);
}
push @{ $rows[-1] }, $pct;
}
}
my $rres = ''; # render result
( run in 0.424 second using v1.01-cache-2.11-cpan-709fd43a63f )