Bencher-Backend
view release on metacpan or search on metacpan
lib/Bencher/Backend.pm view on Meta::CPAN
($module_startup ? $parsed->{module_startup_precision} : undef) //
$parsed->{precision} // $parsed->{default_precision} // 0;
if (defined($args{precision_limit}) && $precision < $args{precision_limit}) {
$precision = $args{precision_limit};
}
}
if ($runner eq 'Benchmark') {
die "Bench with Benchmark.pm currently does not support on multiperl or multimodver\n" if $args{multiperl} || $args{multimodver};
my %codes;
my %legends;
for my $it (@$items) {
my $key = $it->{_succinct_name};
if (!length($key)) {
$key = $it->{seq};
}
if (exists $codes{$key}) {
$key .= " #$it->{seq}";
}
$codes{$key} = $it->{_code};
$legends{$key} = join(
" ", map {"$_=$it->{$_}"}
grep { !/^_/ }
sort keys %$it
);
}
log_trace "Running benchmark with Benchmark.pm ...";
my ($stdout, @res) = &Capture::Tiny::capture_stdout(
sub {
Benchmark::cmpthese($precision, \%codes);
print "\n";
print "Legends:\n";
for (sort keys %legends) {
print " ", $_, ": ", $legends{$_}, "\n";
}
});
$envres->[3]{'cmdline.skip_format'} = 1;
$envres->[2] = $stdout;
goto RETURN_RESULT;
}
my $time_start = Time::HiRes::time();
if ($return_meta) {
$envres->[3]{'func.bencher_version'} = $Bencher::VERSION;
lib/Bencher/Formatter/RenderAsBenchmarkPm.pm view on Meta::CPAN
sub render_result {
require Text::Table::More;
my ($self, $envres) = @_;
# because underscored keys were removed; we want _succint_name back.
my $items = $envres->[2];
Bencher::Backend::_set_item_names($items);
my @item_names;
my %legends; # key = succinct_name
for my $it (@$items) {
push @item_names, $it->{_succinct_name};
$legends{$it->{_succinct_name}} =
join(" ", map {"$_=$it->{$_}"} grep { !/^_/ && !/^(errors|pct_|rate|samples|time)/ } sort keys %$it);
}
my @rows;
push @rows, [
# column names
"", # item name
"Rate",
@item_names,
];
lib/Bencher/Formatter/RenderAsBenchmarkPm.pm view on Meta::CPAN
$rres .= Text::Table::More::table(
rows => \@rows,
border_style=>'ASCII::None',
align => 'right',
col_attrs => [
[0, {align=>'left'}],
],
);
$rres .= "\n";
$rres .= "Legends:\n";
for (sort keys %legends) {
$rres .= " " . $_ . ": " . $legends{$_} . "\n";
}
$rres;
}
1;
# ABSTRACT: Scale time to make it convenient
__END__
( run in 1.237 second using v1.01-cache-2.11-cpan-49f99fa48dc )