CGIに依存しないPerlの話題一般
■ このスレッドは過去ログ倉庫に格納されています
0768nobodyさん
02/04/28 20:54ID:???昔はforeach(1..1000000)は内部的に
@array=(1..1000000);
foreach (@array)
って風に一回配列を作ってからforeachにかけてたんじゃないかな。
だからまず@arrayを作るのに時間がかかって、@arrayを評価するのにも時間がかかって…みたいな。
ちなみに
use Benchmark;
@array = 1..100000;
timethese(1000,{
'array'=> q{ foreach (@array) { $_ } },
'0..10'=> q{ foreach (1..100000) { $_ } },
});
Benchmark: timing 1000 iterations of 0..10,array...
0..10: 131 wallclock secs (131.49 usr + 0.00 sys = 131.49 CPU) @ 7.61/s (n=1000)
array: 152 wallclock secs (152.09 usr + 0.00 sys = 152.09 CPU) @ 6.58/s (n=1000)
うちだとこんな結果が出た。Win98 perl5.6.1 CPU466MHz
■ このスレッドは過去ログ倉庫に格納されています