[Tech] Perl ? Carino, ma...

Franco Bagnoli bagnoli@dma.unifi.it
Mer 18 Apr 2001 11:17:26 CEST


On Wed, 18 Apr 2001, Claudio Cicali wrote:

> 
> Saro' breve: se non esiste soluzione a questo mio (stupidissimo)
> problema, PERL succhia.
> 
> Il seguente programma, fatto girare con in input un file di 600Mb
> *ammazza* la macchina. Dopo qualche minuto esce con un bel
> "Out of memory !" (a ragione, visto che di memoria non ne ha piu').
> (Il programma, naturalemnte, e' un estratto minimale di un programma
> piu' complesso)
> 
> #!/usr/bin/perl
> 
> ($infile) = @ARGV;
> 
> open (RAWDATA, "<$infile") or die "Impossibile aprire $infile: $!";
> 
> while (<RAWDATA>)
> {
>      $line = $_;
> 
>      if ($line =~ m/ciao/)
>      {
>       print "Hello\n";
>      }
> }
> 
> close (RAWDATA);

secondo me il problema e' che il file che gli dai in pasto e' binario 
o almeno non ha un fine riga, cosicche' il perl tenta di mangiarsi tutto
il file in un solo boccone e dato che non hai 600 MB di ram libera
comincia a swappare e poi muore. 

Io l'ho provato su un file postscript di 1.3 M e ci mette 0.2 secondi con
un'occupazione di memoria ridicola (oltre al perl, naturalmente....) 

viceversa su un'immagine iso di 650 MB stenta un po' di piu' ma finche' le
righe sono di lunghezza "decente" l'occupazione di memoria non aumenta. 

ciao.

-- 
Franco Bagnoli
Dipartimento di Matematica Applicata "G. Sansone"
Universita' di Firenze, Via S. Marta, 3 I-50139 Firenze, Italy
tel. +39 0554796422, fax: +39 055471787
e-mail: bagnoli@dma.unifi.it







Maggiori informazioni sulla lista flug-tech