X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FBenchmark.pm;h=175c9c63ecf75973335e190265e513bf436db6f2;hb=a5a165b1a650c2a559ea5115716f29e938b821fd;hp=9de99740bb96edb66b5e470549ab7a17d0c51fe5;hpb=df7779cfe685aee627732a875b653ed34ef983ed;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/Benchmark.pm b/lib/Benchmark.pm index 9de9974..175c9c6 100644 --- a/lib/Benchmark.pm +++ b/lib/Benchmark.pm @@ -6,6 +6,8 @@ Benchmark - benchmark running times of Perl code =head1 SYNOPSIS + use Benchmark qw(:all) ; + timethis ($count, "code"); # Use Perl code in strings... @@ -387,6 +389,12 @@ September, 1999; by Barrie Slaymaker: math fixes and accuracy and efficiency tweaks. Added cmpthese(). A result is now returned from timethese(). Exposed countit() (was runfor()). +December, 2001; by Nicholas Clark: make timestr() recognise the style 'none' +and return an empty string. If cmpthese is calling timethese, make it pass the +style in. (so that 'none' will suppress output). Make sub new dump its +debugging output to STDERR, to be consistent with everything else. +All bugs found while writing a regression test. + =cut # evaluate something in a clean lexical environment @@ -402,8 +410,9 @@ use Exporter; @EXPORT=qw(timeit timethis timethese timediff timestr); @EXPORT_OK=qw(timesum cmpthese countit clearcache clearallcache disablecache enablecache); +%EXPORT_TAGS=( all => [ @EXPORT, @EXPORT_OK ] ) ; -$VERSION = 1.02; +$VERSION = 1.04; &init; @@ -432,7 +441,7 @@ sub disablecache { $cache = 0; } # --- Functions to process the 'time' data type sub new { my @t = (time, times, @_ == 2 ? $_[1] : 0); - print "new=@t\n" if $debug; + print STDERR "new=@t\n" if $debug; bless \@t; } sub cpu_p { my($r,$pu,$ps,$cu,$cs) = @{$_[0]}; $pu+$ps ; } @@ -468,6 +477,7 @@ sub timestr { $f = $defaultfmt unless defined $f; # format a time in the required style, other formats may be added here $style ||= $defaultstyle; + return '' if $style eq 'none'; $style = ($ct>0) ? 'all' : 'noc' if $style eq 'auto'; my $s = "@t $style"; # default for unknown style $s=sprintf("%2d wallclock secs (%$f usr %$f sys + %$f cusr %$f csys = %$f CPU)", @@ -703,7 +713,7 @@ sub timethese{ } sub cmpthese{ - my ($results, $style) = ref $_[0] ? @_ : ( timethese( @_[0,1] ), $_[2] ) ; + my ($results, $style) = ref $_[0] ? @_ : ( timethese( @_[0,1,2] ), $_[2] ) ; $style = "" unless defined $style;