Re: Benchmarking en distintos lenguajes [ Era algo así como cliente en jabber... ]
Xavier Andrade
andrade en theory.polytechnique.fr
Vie Nov 16 15:05:56 CLST 2007
On Fri, 16 Nov 2007, Franco Catrin L. wrote:
>
> El problema esta cuando el nivel de abstracción te oculta lo que esta
> sucediendo por debajo, y se hacen cosas demás en forma involuntaria.
> Recuerdo que Federico Mena comentaba que muchos problemas de performance se
> habian resuelto simplemente aplicando strace para ver qué estaba sucediendo
> por debajo y ahi encontraron que en aplicaciones como OpenOffice (y tambien
> en GNOME) se abrian y procesaban archivos inmutables una y otra vez, en vez
> de una sola vez al principio. Es facil tener ese problema, cuando las
> aplicaciones crecen y tienes una gran base de código te comienzas (al fin) a
> enfocar mas en el qué y no en el cómo, pero si te descuidas comienzas a mal
> usar lo que ya tienes.
>
Bueno, por ejemplo si se llama repetidamente a rutinas chicas que hacen
poco, el rendimiento se reduce en al menos un orden de magnitud en
comparacion al mismo codigo "inlined".
Es decir:
for(i=0; i<N; i++) a[i] = b[i] + c[i];
es muchisimo mas rapido que
for(i=0; i<N; i++) a[i] = sum(b[i], c[i]);
con double sum(double a, double b){ return a + b;}. Y al final muchos
codigos OO terminan haciendo cosas por el estilo (probablemente no para este
ejemplo, claro).
Saludos,
Xavier
Más información sobre la lista de distribución Linux