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