私はこのようになりますループがあります。どのようにしてPerlでループの繰り返しを行うことができますか?
for (0..10000) {
$my_array[$_] = `some external program`;
}
をそして私は、各反復にかかる時間の時間とどのくらい全体furshlugginerの事は取るにしたいです。
Perlでこれを行うにはどうすればよいですか?
私はこのようになりますループがあります。どのようにしてPerlでループの繰り返しを行うことができますか?
for (0..10000) {
$my_array[$_] = `some external program`;
}
をそして私は、各反復にかかる時間の時間とどのくらい全体furshlugginerの事は取るにしたいです。
Perlでこれを行うにはどうすればよいですか?
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が一部のプラットフォームで利用できない場合があります。返される秒数は浮動小数点数になります。
コアモジュールから使用ベンチマーク:基本的にhttp://perldoc.perl.org/Benchmark.html
このような何か:
use Benchmark;
$t0 = Benchmark->new;
$my_array[$_] = `some external program`;
$t1 = Benchmark->new;
$td = timediff($t1, $t0);
print "the code took:",timestr($td),"\n";
と複数の反復をテストするためには、試してみてください。
$t = timeit(10000, '... code...');
print "10000 loops of code took:", timestr($t), "\n";