NAME
Benchmarks - The comparison benchmarker
SYNOPSIS
my
$x
= 2;
+{
times
=>
sub
{
$x
*
$x
*
$x
*
$x
},
raise
=>
sub
{
$x
** 4 },
};
};
DESCRIPTION
Benchmarks is the Benchamark wrapper for comparing routines easily.
When this module was loaded, all you need to do is pass the CODE reference that returns the hash reference.
+{
'routine_name_1'
=>
sub
{
'... some code ...'
},
'routine_name_2'
=>
sub
{
'... some code ...'
},
};
};
Then the comparison will be invoked and show the result like below.
Benchmark: running raise,
times
for
at least 1 CPU seconds...
raise: -1 wallclock secs ( 1.07 usr + 0.00 sys = 1.07 CPU) @ 8895180.37/s (n=9517843)
times
: 2 wallclock secs ( 1.10 usr + 0.00 sys = 1.10 CPU) @ 4051316.36/s (n=4456448)
Rate
times
raise
times
4051316/s -- -54%
raise 8895180/s 120% --
PURE BENCHMARK
Benchmarks can show a pure benchmark(NOT to compare) like below.
then the result like this.
timethis
for
1: 1 wallclock secs ( 1.07 usr + 0.00 sys = 1.07 CPU) @ 4164904.67/s (n=4456448)
MORE FUNCTIONS
Benchmarks
exports *ALL* functions from Benchmark
. You can use Benchmarks
module as same as Benchmark
module.
More information about functions: https://metacpan.org/pod/Benchmark#Standard-Exports and https://metacpan.org/pod/Benchmark#Optional-Exports
BENCHMARKS ARGS
When you use Benchmarks
, you can throw several args like below.
example STYLE:
my
$x
= 2;
+{
times
=>
sub
{
$x
*
$x
},
raise
=>
sub
{
$x
** 2 },
};
}, 100,
"none"
;
example STYLE and TITLE:
You can pass(return) these args at runtime.
BENCHMARK TEMPLATE
This module includes the penchmarks command. It's generator of the Benchmarks
template.
$ penchmarks GENERATE_BENCHMARK_FILE_PATH
Then you can edit the GENERATE_BENCHMARK_FILE_PATH
file and run it.
REPOSITORY
Benchmarks is hosted on github http://github.com/bayashi/Benchmarks
Welcome your patches and issues :D
AUTHOR
Dai Okabayashi <bayashi@cpan.org>
SEE ALSO
LICENSE
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.