trideni textoveho souboru
Honza Pazdziora
adelton na fi.muni.cz
Čtvrtek Červen 8 14:26:11 CEST 2000
On 8 Jun 2000 13:02:53 +0200, znouza <znouza na cl.cesnet.cz> wrote:
>
> #!/usr/bin/perl
> @in=<STDIN>;
> foreach(@in) {
> $pole{$_}++;
> }
V teto chvili mate tech 40 MB v pameti dvakrat (plus nejaky overhead
na hashovani minus ty duplicity). Ono na typickem stolnim PC muze byt
rozdil, jestli si ta data natahnete jednou (na setrideni nebo do hashe)
nebo dvakrat.
> while(($key)=each %pole) {
> print STDOUT "$key";
> }
Ta interpolace je zbytecna:
bash$ perl
use Benchmark;
my $text = 'jezek';
timethese(500000, {
direct => sub { my $a = $text; },
interp => sub { my $a = "$text"; }
});
__END__
Benchmark: timing 500000 iterations of direct, interp...
direct: 3 wallclock secs ( 2.55 usr + 0.00 sys = 2.55 CPU)
interp: 7 wallclock secs ( 3.13 usr + 0.00 sys = 3.13 CPU)
bash$ perl
use Benchmark;
my $text = 'jezek' x 100;
timethese(500000, {
direct => sub { my $a = $text; },
interp => sub { my $a = "$text"; }
});
__END__
Benchmark: timing 500000 iterations of direct, interp...
direct: 6 wallclock secs ( 4.00 usr + -0.01 sys = 3.99 CPU)
interp: 13 wallclock secs ( 5.62 usr + 0.00 sys = 5.62 CPU)
--
------------------------------------------------------------------------
Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
.project: Perl, DBI, Oracle, MySQL, auth. WWW servers, MTB, Spain.
------------------------------------------------------------------------
Další informace o konferenci Linux