Perlについての質問箱 30箱目at TECHPerlについての質問箱 30箱目 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト780:デフォルトの名無しさん 07/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って言えたんだけどな。 781:デフォルトの名無しさん 07/05/23 19:30:42 一応貼っておく Rate grep1 for1 map1 grep2 map2 for2 grep1 19.8/s -- -1% -3% -64% -64% -65% for1 20.0/s 1% -- -2% -64% -64% -65% map1 20.4/s 3% 2% -- -63% -63% -64% grep2 55.2/s 179% 176% 171% -- -1% -3% map2 55.5/s 180% 177% 172% 1% -- -3% for2 57.0/s 188% 185% 180% 3% 3% -- 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch