The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Dumbbench::Instance::PerlEval - Benchmarks a string of Perl code

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::PerlEval->new(name => 'mauve', code => 'for(1..1e9){$i++}'), 
    # ... more things to benchmark ...
  );
  $bench->run();
  # ...

DESCRIPTION

This class inherits from Dumbbench::Instance and implements benchmarking of strings of Perl code using eval "".

METHODS

new

Constructor that takes named arguments.

In addition to the properties of the base class, the Dumbbench::Instance::PerlEval constructor requires a code parameter. The code needs to be a string that is suitable for passing repeatedly to string-eval.

Optionally, you can provide a dry_run_code option. It has the same structure and purpose as the code option, but it is used for the dry-runs. By default, a simple eval is used for this, so it's unlikely you will need the dry-run unless you want to strip out the compile-time overhead of your code.

code

Returns the code string that was set during construction.

dry_run_code

Returns the dry-run code string that was set during construction.

SEE ALSO

Dumbbench, Dumbbench::Instance, Dumbbench::Instance::Cmd, Dumbbench::Result

Benchmark

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.