[uylug-varios] Thunderbird discontinuado ?

Eduardo Trápani etrapani at unesco.org.uy
Sun Jul 29 11:32:38 PDT 2012


> Maildir es _mucho_ mas eficiente y
> mas rapido, tanto para buscar como para guardar cosas.

Estaba pensando, qué es lo más lindo de esto.  Hackear, ¿no?  Así que hice un pequeño programita (va abajo de todo) para comparar la parte de buscar cosas en maildir.  Un mensaje cualquiera lo copio diez mil veces con nombres diferentes en una carpeta y lo concateno diez mil veces en un solo archivo en otra carpeta:

original.eml -> mbox/mbx (concatenado)
original.eml -> maildir/xyz000 ... maildir/xyz999

Y después hago un grep de algo que sé que no voy a encontrar, buscando la respuesta que tendría si la cadena a buscar estuviera en el mensaje 1001.

Resultados con el comando time:

$ time egrep -r "esto seguro que no lo encuentro" maildir

real	0m0.178s
user	0m0.020s
sys	0m0.092s

$ time egrep "esto seguro que no lo encuentro" mbox/mbx 

real	0m0.006s
user	0m0.000s
sys	0m0.004s

¿Será que maildir es más rápido para buscar?  ;) Los ejecuté dos veces cada uno, para poder alimentar los caché que estuvieran en juego.  Mi máquina no es gran cosa, sus resultados van a ser mucho mejores, pero importa la comparación relativa. Para los curiosos, si hago egrep ... maildir/* el resultado es mucho peor.

En realidad es lógico.  Maildir *necesita* abrir y cerrar *cada* archivo para buscar.  Eso tiene un costo.  Ese costo pierde relatividad con el acceso a IO (aunque también es lógico que estén más dispersos en Maildir, que haya más saltos innecesarios por slack, etc.)  Mi suposición es que con archivos más grandes es probable que converjan.  Pero lo que es cierto es que no se puede pretender que sea más eficiente:

1. abrir archivo, leerlo todo, cerrarlo

que:

2. abrir archivo 1, leerlo todo, cerrarlo, abrir archivo 2, leerlo todo cerrarlo.

Cuanto más uno se acerca a lo que efectivamente pasa a nivel de kernel y filesystem más uno se da cuenta de que simplemente imposible que la búsqueda sea más rápida.  A menos que me esté perdiendo algo, ojalá, porque es lo que me gusta de la lista.  Por ahora me animo a decir que maildir es siempre *más lento* (o *mucho más lento según el filesystem de abajo) que mbox a la hora de buscar.

Va el programita por si alguien quiere hacer las pruebas en su propio equipo.

$ bash
$ ARCHIVO="/tmp/original.eml"
$ mkdir /tmp/mbox
$ mkdir /tmp/maildir
$ for i in {1..10000}; do cat $ARCHIVO >> /tmp/mbox/mbx; a=$(tempfile --directory /tmp/maildir/); cp $ARCHIVO $a; echo $i; done
$ time egrep "esto seguro que no lo encuentro" mbox/mbx 
$ time egrep -r "esto seguro que no lo encuentro" maildir

Eduardo.



More information about the Uylug-varios mailing list