Pole

Honza Pazdziora adelton na informatics.muni.cz
Pondělí Únor 25 14:44:01 MET 2002


On Mon, Feb 25, 2002 at 02:37:44PM +0100, Roman Fordinal wrote:
> 
> JK> Obcas neni od veci se podivat do dokumntace.
> JK> Myslite ze je to efektivnejsi nez:
> 
> JK> $text = join('', na pole);
> v tomto pripade iste, ale pocital som ze pocas toho FOREACH aj s tym
> bude chciet nieco este robit :) totiz ze ten cyklus nebude prazdny.
> ale v konecnom dosledku join je vlastne len FOREACHom nad danym polom.
> ide len o skratenie kodu v main::
> 
> (theeeeda aspon myslim) :)

Ne tak docela: na me pomale pracovni stanici:

$ perl
use Benchmark;
timethese(1000, {
        foreach => sub {
                my @pole = ('x', 'sdfg', 'cvb') x 100;
                my $out = ''; 
                for (@pole) { $out .= $_ }
        },
        join => sub {
                my @pole = ('x', 'sdfg', 'cvb') x 100;
                my $out = join '', @pole;
        }
});
__END__
Benchmark: timing 1000 iterations of foreach, join...
   foreach: 14 secs ( 4.74 usr  0.11 sys =  4.85 cpu)
      join: 10 secs ( 3.14 usr  0.08 sys =  3.22 cpu)

a na podstatne rychlejsim serveru:

$ perl
use Benchmark;
timethese(10000, {
        foreach => sub {
                my @pole = ('x', 'sdfg', 'cvb') x 1000;
                my $out = ''; 
                for (@pole) { $out .= $_ }
        },
        join => sub {
                my @pole = ('x', 'sdfg', 'cvb') x 1000;
                my $out = join '', @pole;
        }
});
__END__
Benchmark: timing 10000 iterations of foreach, join...
   foreach: 47 wallclock secs (44.92 usr +  0.68 sys = 45.60 CPU) @ 219.30/s (n=10000)
      join: 34 wallclock secs (30.96 usr +  0.74 sys = 31.70 CPU) @ 315.46/s (n=10000)


-- 
------------------------------------------------------------------------
 Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
      ... all of these signs saying sorry but we're closed ...
------------------------------------------------------------------------


Další informace o konferenci Perl