linux user group brescia

immagine del castello

Archivio della mailing list

[LugBS] Konqueror e processore in Kubuntu Hardy

Maurizio Paolini paolini a dmf.unicatt.it
Ven 17 Lug 2009 16:29:46 UTC
On Fri, Jul 17, 2009 at 05:25:40PM +0200, Andrea Gelmini wrote:
> Il giorno 17 luglio 2009 17.13, Maurizio
> Paolini<paolini a dmf.unicatt.it> ha scritto:
> > Succede che se la variabile di ambiente LANG indica l'utilizzo di
> > encoding "utf8", il comando grep in alcuni casi richiede un tempo di
> > esecuzione (anche su file di piccole dimensioni) di un paio di ordini
> > di grandezza maggiore del normale.
> 
> Buffo. All'epoca il porting delle applicazioni GNU al supporto pieno
> di UTF-8 aveva comportato un pianto greco, in termini di prestazioni.
> Ovviamente tutti i barbatrucchi applicabili alla ricerca sull'ASCII di
> base andarono a farsi benedire.
> 
> Detto questo, pero', sono passati anni, e la situazione รจ stata via via risolta.
> 
> Farei una segnalazione in tal senso. Quanto narri non dovrebbe piu'
> accadere da tempo.

Avevo gia fatto una ricerca su bugzilla, e c'era gia una segnalazione
aperta: https://bugzilla.redhat.com/show_bug.cgi?id=499220 e avevo
ho aggiunto un mio commento. Riporto qui sotto un modo minimale per evidenziare
il problema: [fedora 11 glibc-2.10.1-2.i686 grep-2.5.3-4.fc11.i586]

$ for n in `seq 10000`
> do
>  echo "0" >>test.txt
>done
$ export LANG=en_US.UTF-8
$ time grep [0] test.txt >/dev/null

real    0m9.102s            <--------------- 9 secondi!!!
user    0m8.419s
sys     0m0.021s
$ export LANG=en_US
$ time grep [0] test.txt >/dev/null

real    0m0.018s            <--------------- 18 millesimi di sec
user    0m0.004s
sys     0m0.001s
--------------------------------------

La differenza di tempo di calcolo e' spaventosa... e non si
spiega semplicemente dicendo che non viene usato un algoritmo
sufficientemente astuto, c'e' proprio dietro un baco.
Oltretutto la differenza non si vede se l'espressione regolare
e' "0" invece che "[0]" (semanticamente del tutto equivalenti).

Comunque da quando ho fatto la segnalazione ad oggi non ho
ricevuto alcun feedback.  Quel che e' certo e' che le macchine
su cui ho tolto utf8 in sysconfig/i18n sono improvvisamente 
diventate estremamente piu' "responsive".
Un collega aveva fatto una rapida ricerca e pare ci fosse una
patch che pero' funzionava solo su versioni precedenti di grep.

mp




Maggiori informazioni sulla lista Lug