On Fri, Jun 24, 2005 at 03:37:51PM +0200, Alfredo Beaumont Sainz wrote:
> Desde luego, en el hardware nuevo tendra mayor rendimiento la compilacion 
> personalizada, yo no he dicho lo contrario. Repito lo dicho: la ventaja de 
> rendimiento _se hace mas evidente_ en maquinas menos potentes. Un claro 
> ejemplo: 
> 
> Optimizacion de un 15% en un PII 350 frente a un 25% en un PIV 3500. La 
> aplicacion tarda en cargar 2 segundos en el PIV y 20 en el PII. Si 
> optimizamos, en el PIV tendremos un 1.5 de tiempo de carga, frente a 17 en el 
> PII. En cual se va a hacer mas evidente la mejora de rendimiento?

Bueno ya que nadie mas ataca al clan Beaumont yo voy a seguir con mi
particular cruzada. Sin embargo, espero dejar mis ideas bien claras y
detalladas de forma que doy por acabado el flame, que me esta llevando mucho
tiempo... Se agradecen las muestras de apoyo de otros debianitas de ITSAS PERO
MALDITOS PODRIAS HABER AYUDADO UN POKO MAS xDD.

= Prologo =

Es curioso como en la lista de paquetes binarios de gentoo facilitados por
Dewonik aparecen los programas mas pesados. Son precisamente estos 
programas los que compilados con las opciones especificas de tu maquina 
pueden ofrecer mayores ventajas de rendimiento. ¿Que pasa con los parametros
march, mcpu, O, maling-*, ....?

Sinceramente, yo entre FreeBSD y Debian no noto mucha diferencia en el 
tiempo de respuesta del comando "ls".

= Introducción =

Se está hablando de la idoniedad de la compilacion de aplicaciones en software
viejo frente a un sistema clásico de paquetes precompilados. Centrandonos en
la arquitectura Intel 386 tendriamos los siguientes procesadores:

i386 -> i486 -> i586 -> i686 -> pentium -> pentium-mmx -> pentium-pro ->
pentium2 -> pentium3 -> pentium4 (Donde i586 es equivalente a pentium y i686
es equivalente a pentiumpro).

Yo personalmente no compilaria software para maquinas inferiores a i586
considerando que el beneficio obtenido es mucho menor que el trabajo
realizado. Sobre todo en maquinas de escritorio, si bien en maquinas
servidoras con poco software instalado podria ser una opcion.

Por ejemplo debian tiene compilados sus paquetes para i386 pero
slackware tiene el apache compilado para i486 y gxine para i686...

Ahora bien ya que igual para un pentium en adelante haya grandes ventajas de
ejecucion del programa y puesto que dispongo de un pentium II a 350 MHz he
hecho unas pruebillas. Las pruebas las he realizado con el mozilla-firefox.

= Sistema de paqueteria =

# apt-get install mozilla-firefox mozilla-checky

Con el sistema de paqueteria me sentia que tiraba la casa por la ventana y me
he dicho: ya que estoy pos voy a instalar tambien el comprobador de paginas
webs. En total 8,966MB para que mi linea de 56 kbps sufra un poko... Unos 49
minutos a una media de 30kbps.

= Sistema de compilacion =

Para las pruebas he utilizado el apt-build. Como primer paso me descarge las
fuentes de mozilla-firefox.

# apt-build source mozilla-firefox
...
Need to get 40.4MB of source archives
...

¡¡VAYA PUTADA!! Pos nada a descargar los 40.4MB por el rigor de las pruebas.
Como tengo una line de 56 kbps y a veces dos ordenadores simultaneamente
conectados, la descarga empezo a las 14:37 del sabado y no acabo hasta las
19:16. ¡¡Dios soy un puto martir!!

A continaucion segui con el proceso de la compilacion e instalación. Pero o
sorpresa mia me tenia que descargar unas bonitas dependencias de compilacion:

...
0 upgraded, 42 newly installed, 0 to remove and 1 not upgraded.
Need to get 15.5MB of archives.
...

Pos nada continua la descarga de software... No os preocupeis que esto solo me
llevo desde las 19:26 hasta las 21:03. Esto hace una media de 28,7 Kbps no se
porque ostias me iria tan lenta la conexion con rediris...

Por fin, despues llega el paso magico de la compilacion!! Pos nada a las 21:05
empieza a compilar el mozilla firefox con el apt-build. Voy a cenar, me
afeito, ducho, me doy colonia e incluso veo un poco salsa rosa (esto no lo
comenteis por ahi...). A las 24.00 a mirar al ordenador y no habia terminado
el hijo puta de compilar...

Asi que decidi salir de jaia a las fiestas de San Juan del barrio de
Larrazabal de Laudio que habia los conciertos de Kauta y Keike junto 
con unas buenas
cantidades de pika. Luego a las 02.00 hubo romeria con Amaiur hasta las 06:00
de la mañana con temas clasicos de Lin Ton Taun, Negu, ... Sobre las 06:30
llegue a casa. Pues bien lo primere que hice fue mirar si habia terminado el
pentium II (anteriormente h*** p***) de compilar. ¡¡¡¡Y si!!!! habia terminado
de compilar a la 01:00, si me hubiese kedao viendo salsa rosa habria sido 
participe del gran evento, lastima...

= Rendimiento =

Lo realmente raro es que despues de tanto jolgorio no he notado diferencias de
rendimiento entre la version precompilada y la compilada con apt-build. He
utilizado el comando "time mozilla-firefox" (y chapaba el navegador nada mas
abrirse) para intentar hacerme una idea del tiempo que tardaba en arrancarse y
los tiempos eran casi iguales.

No se si apt-build le habra pasado correctamente las opciones de compilacion a
gcc (-march=pentium2 -mcpu=pentium2 -O2) ya que este programa ha tenido
anteriormete algun tipo de bug similar. O si por el contrario la compilacion
de debian utiliza parches que mejoren el rendimiento...

Tal vez tenga que realizar unas futuras pruebas adicionales hasta que tenga
banda ancha en casa (es decir indefinidamente) y os notificare los resultados
de las segundas pruebas.

= Conclusiones =

Actualmente con el mozilla tarda unos 22 segundos en arracarme la primera vez.
El 15% de mejora de rendimiento propuesto por
ziberpunk en este caso es de 3,3 segundos, me siento generoso y lo he ampliado
a 4 segundos. Si se me redujese en 4 segundos el arranque (que de todas formas
no ha pasado en las pruebas, seguramente por algun error de configuracion)
pues genial.

Pero una vez puestos a esperar, que mas me da esperar 18 segundos
de arranque frente a 22, encima si para conseguir esos 4 putos segundos me he
tenido que descargar 40 MB en lugar de 8 MB (amen de las descargas de
dependencias de compilacion) y ademas 4 horitas de compilacion durante el
cual no he tenido disponible el navegador para trabajar (yo no quiero tunear
el ordenador quiero que me sirva para trabajar lo mas eficientemente).

¿¿Sabeis la cantidad de veces que deberia arrancar el mozilla-firefox para
"amortizar" la descarga de sources y el tiempo de compilacion (esos magicos 4
segundos)?? Si quiero amortizar solo el tiempo de compilacion deberia 
arrancarlo 3600 veces, suponiendo que arranco el mozilla-firefox 50 veces al
dia me daria 72 dias de amortizacion. Es muy probable que no lo arranque
tantas veces al dia xDD o que antes de los 72 dias aparezca una nueva version
de mozilla, con lo que no amortizaria el trabajo realizado... Ademas hace poco 
ha aparecido un fallo de seguridad en todos los navegadores salvo Opera y 
seguro que Mozilla sacara el Firefox 1.05 dentro de poco.

Así pues, considero que la compilacion en maquinas antiguas por debajo de
pentium no trae ventajas frente a los sistemas de paqueteria y si que conlleva
un gasto enorme de recursos en tiempo de compilacion. Ademas, para máquinas
desktop me quedo con los sistemas de paqueteria ya que ofrecen una mejor
funcionalidad y productividad aunque malgaste ciclos de reloj al ejecutar los
programas hasta ziberpunk ha dicho que esa diferencia de optimizacion se nota
muy poco en maquinas potentes. Sin embargo, para servidores donde el
rendimiento es una opcion clave (lease, no el servidor de ITSAS), ya sea para
hardware no muy viejo o nuevo, si que considero una opcion preferente los
sistemas de compilacion.

Un cordial saludo a todos, en especial a los que habeis aguantado la chapa
hasta aki. Saludos,

zako

Responder a