Perlについての質問箱 28箱目
■ このスレッドは過去ログ倉庫に格納されています
0495デフォルトの名無しさん
2006/11/21(火) 20:17:06use sort '_quicksort';
$N = 100000;
push @a, int(rand($N)) for (1..$N);
timethese(10, {
'case1' => sub { @b = sort @a; },
'case2' => sub { @b = sort { $a <=> $b } @a; },
'case3' => sub { @b = sort { 0; $a <=> $b } @a; },
'case4' => sub { sort @a; },
});
---
This is perl, v5.8.8 built for MSWin32-x86-multi-thread
Windows XP SP2 + AMD Athlon 64 2.39GHz
Benchmark: timing 10 iterations of case1, case2, case3, case4...
case1: 4 wallclock secs ( 3.84 usr + 0.02 sys = 3.86 CPU) @ 2.59/s (n=10)
case2: 2 wallclock secs ( 2.16 usr + 0.03 sys = 2.19 CPU) @ 4.57/s (n=10)
case3: 4 wallclock secs ( 4.37 usr + 0.00 sys = 4.37 CPU) @ 2.29/s (n=10)
case4: 0 wallclock secs ( 0.00 usr + 0.00 sys = 0.00 CPU)
(warning: too few iterations for a reliable count)
0; をつけない方が速いみたい。case2 は10回やって平均約0.22msと、なかなかの好タイム。
代入しない case4 はヴォイドコンテキストなので、実行すらされないわけですね。
■ このスレッドは過去ログ倉庫に格納されています