%PDF- %PDF-
Direktori : /proc/self/root/usr/share/doc/perl-Moose-2.1005/benchmarks/cmop/lib/Bench/ |
Current File : //proc/self/root/usr/share/doc/perl-Moose-2.1005/benchmarks/cmop/lib/Bench/Run.pm |
#!/usr/bin/perl package Bench::Run; use Moose; use Benchmark qw/:hireswallclock :all/; has classes => ( isa => "ArrayRef", is => "rw", auto_deref => 1, ); has benchmarks => ( isa => "ArrayRef", is => "rw", auto_deref => 1, ); has min_time => ( isa => "Num", is => "rw", default => 5, ); sub run { my $self = shift; foreach my $bench ( $self->benchmarks ) { my $bench_class = delete $bench->{class}; my $name = delete $bench->{name} || $bench_class; my @bench_args = %$bench; eval "require $bench_class"; die $@ if $@; my %res; foreach my $class ( $self->classes ) { eval "require $class"; die $@ if $@; my $b = $bench_class->new( @bench_args, class => $class ); $res{$class} = countit( $self->min_time, $b->code ); } print "- $name:\n"; cmpthese( \%res ); print "\n"; } } __PACKAGE__; __END__