NAME
Dumbbench::Instance - A benchmark instance within a Dumbbench
SYNOPSIS
use
Dumbbench;
my
$bench
= Dumbbench->new(
target_rel_precision
=> 0.005,
# seek ~0.5%
initial_runs
=> 20,
# the higher the more reliable
);
$bench
->add_instances(
Dumbbench::Instance::Cmd->new(
name
=>
'mauve'
,
command
=> [
qw(perl -e 'something')
]),
# ... more things to benchmark ...
);
$bench
->run();
# ...
DESCRIPTION
This module is the base class for all benchmark instances. For example, for benchmarking external commands, you should use Dumbbench::Instance::Cmd.
The synopsis shows how instances of subclasses of Dumbbench::Instance
are added to a benchmark run.
METHODS
new
Constructor that takes named arguments. In this base class, the only recognized argument is an instance name
.
timings
Returns the internal array reference of timings or undef if there aren't any.
dry_timings
Same as timings
but for dry-run timings.
name
Returns the name of the instance.
clone
Returns a full (deep) copy of the object. May have to be augmented in subclasses.
single_run
Needs to be implemented in subclasses: A method that performs a single benchmark run and returns the duration of the run in seconds.
single_dry_run
Needs to be implemented in subclasses: A method that performs a single dry-run and returns the duration of the run in seconds.
timings_as_histogram
If the optional SOOT module is installed, Dumbbench
can generate histograms of the timing distributions.
This method creates such a histogram object (of type TH1D
) and returns it. If SOOT
is not available, this method returns the empty list.
dry_timings_as_histogram
Same as timings_as_histogram
, but for the timings from dry-runs.
SEE ALSO
Dumbbench::Instance::Cmd, Dumbbench::Instance::PerlEval, Dumbbench::Instance::PerlSub
Number::WithError does the Gaussian error propagation.
SOOT can optionally generate histograms from the timing distributions.
http://en.wikipedia.org/wiki/Median_absolute_deviation
AUTHOR
Steffen Mueller, <smueller@cpan.org>
COPYRIGHT AND LICENSE
Copyright (C) 2010 by Steffen Mueller
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.1 or, at your option, any later version of Perl 5 you may have available.