- 780 名前:デフォルトの名無しさん mailto:sage [2007/05/23(水) 19:28:11 ]
- map1が遅いのはでかいリスト返してるから。
一つだけ全く別のことやってりゃそりゃ遅い罠。 map2が遅いのはfor2grep2と違ってブロック評価してるからだと思う。 とりあえず 'map1' => sub { my @hoge; map { push @hoge, $TABLE{$_} } @DATA; 1; }, 'map2' => sub { map $_ = $TABLE{$_} , @DATA; 1; }, に書き換えたらグループごとの速度は大差なくなるはず。 関係ないけど最近のPerlのmapは 同じことやるforeachより速くなったりするのでびっくり。 古いバージョンなら戻り値使わない時は絶対forって言えたんだけどな。
|

|