perl 5 まとめウィキ

繰り返し構文


for?, foreach? , while? ,until? , do? + while? , do? + until?

繰り返し構文++

map?,grep?

Benchmark 配列から値を取り出す with for/foreach


This is perl, v5.8.8 built for i386-linux-thread-multi

                Rate for_loop1 for_loop2 foreach_loop2 foreach_loop1 for_loop3 for_loop4
for_loop1     3463/s        --      -24%          -51%          -51%      -52%      -52%
for_loop2     4532/s       31%        --          -36%          -36%      -37%      -38%
foreach_loop2 7055/s      104%       56%            --           -1%       -2%       -3%
foreach_loop1 7135/s      106%       57%            1%            --       -1%       -2%
for_loop3     7190/s      108%       59%            2%            1%        --       -1%
for_loop4     7258/s      110%       60%            3%            2%        1%        --

#!/usr/bin/perl 

use warnings;
use strict;
use Benchmark qw/cmpthese/;

my @hoge = ( 1..1000);
cmpthese(-5, {
    for_loop1 => sub {
        my $total = 0;
        for ( my $i = 0 ; $i < scalar @hoge ; $i++ ) {
            $total+=$hoge[$i];
        }
    },
    for_loop2 => sub {
        my $total = 0;
        my $cnt = 0;
        for(@hoge ) {
            $total+=$hoge[$cnt];
            $cnt++;
        }
    },
    for_loop3 => sub {
        my $total = 0;
        for (@hoge ) {
            $total+=$_;
        }
    },
    for_loop4 => sub {
        my $total = 0;
        for my $i (@hoge ) {
            $total+=$i;
        }
    },
    foreach_loop1 => sub {
        my $total = 0;
        foreach ( @hoge ) {
            $total+=$_;
        }
    },
    foreach_loop2 => sub {
        my $total = 0;
        foreach my $i ( @hoge ) {
            $total+=$i;
        }
    },
});
タグ

このページへのコメント

BLhyRC Fantastic post.Much thanks again.

0
Posted by tips about seo 2013年12月21日(土) 00:22:46 返信

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

Menu

ここは自由に編集できるエリアです。

フリーエリア

どなたでも編集できます