Como defensor coherente que soy, de la migración hacia la plataforma x64, he realizado algunos tests que intenten demostrar las diferencias del software nativo de 64 bits comparado con el de 32 bits para el usuario final.
Por ello mis pruebas, usan el compresor de archivos de código abierto 7-Zip, en su última versión 4.58 alpha 4, que es un programa de propósito lo suficientemente general, como para que pueda ser relevante en cuanto a las conclusiones que se obtengan.
Por un lado vemos que una vez instaladas ambas versiones del programa, la versión de x86, necesita de 2.767.816 bytes en disco, mientras que la x64 sube la cifra hasta los 3.767.414 bytes. es decir, el paso a los 64 bits, empieza con la desventaja de un espacio en disco que es un 36% superior al de la antigua plataforma.plataforma. En cuanto al consumo de memoria del programa, las cifras van también en ese entorno, lo que se debe a la mayor longitud de instrucciones, inmediatos, y punteros que en el peor de los casos llega a ser del doble.
Sin embargo en el caso que nos ocupa, la desventaja en el consumo de memoria de la compilación "sixty four", es más que despreciable si la observamos en el contexto de la memoria total que necesita el programa para comprimir. Del espacio en disco, en efecto, hablamos de menos de 4 Mb, lo cual hoy día es una cantidad despreciable.
Las pruebas de rendimiento se han ejecutado bajo Windows Vista Business x64, en mi Athlon 64X2 3800+. Empíricamente en la mayoría de casos, 7-Zip tiene mejor desempeño usando el doble de threads que el número de CPU, por lo que la línea de comandos escogida ha sido 7z b -mmt4–
La compilación x86, daba en el benchmark que incorpora 7-Zip la cifra de 3.704 MIPS a la hora de comprimir, y 4.788 MIPS a la hora de descomprimir. La x64, comprimía a 3.950 MIPS, y descomprimía a 4.963 MIPS. Una mejora del rendimiento puro de entre el 3% y el 5%, que sin ser demasiado, merece reconocer que viene limitada en gran parte debido al ancho de banda de los accesos a memoria.
Oculto tras estos números, hay una ventaja extra en el uso de las versión extendida de 64 bits, la gestión de memoria mejorada, permite comprimir con tamaños de diccionario que superen los 1,5 Gb de memoria sin problemas, algo que es en el mejor de los casos difícil con 32 bits.
Hombre, pues tampoco es como para echar cohetes, no? …
No, la diferencia no es demasiado grande jb, aunque debido a los accesos a memoria que requiere el algoritmo LZMA, es algo que seguramente venga limitado más por el ancho de banda del bus de memoria, que de la CPU en si.
Estoy preparando algo parecido, pero más del mundo real, con MySQL… ¡Estáte atento!