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.