2011-01-17 8 views

Antwort

2
use Time::HiRes 'gettimeofday', 'tv_interval'; 

my $start = [ gettimeofday() ]; 

for (0..10000) { 
    my $iteration_start = [ gettimeofday() ]; 
    $my_array[$_] = `some external program`; 
    $elapsed_secs[$_] = tv_interval($iteration_start); 
} 

my $total_secs = tv_interval($start); 

gettimeofday ist möglicherweise nicht auf allen Plattformen verfügbar. Die zurückgegebenen Sekunden sind eine Gleitkommazahl.

6

Verwendung Benchmark aus den Kernmodulen: http://perldoc.perl.org/Benchmark.html

Im Grunde so etwas wie diese:

use Benchmark; 
$t0 = Benchmark->new; 
$my_array[$_] = `some external program`; 
$t1 = Benchmark->new; 
$td = timediff($t1, $t0); 
print "the code took:",timestr($td),"\n"; 

und mehr Iterationen zu testen versuchen:

$t = timeit(10000, '... code...'); 
print "10000 loops of code took:", timestr($t), "\n"; 
Verwandte Themen