¿Uso una máquina virtual de 32 o de 64 bits?
lunes, noviembre 26, 2012 at 4:38PM
Abraham

En este interesante artículo se discuten algunos de los pros y cons de emplear una máquina virtual de 32 o de 64 bits. La principal ventaja de irse a los 64 bits es la posibilidad de emplear más memoria para el heap, que en una máquina de 32 bits, dependiendo del sistema operativo, tiene un tamaño máximo de 1.5GB en Windows (aunque hackeando un poco podemos llegar a los 3GB), 2 GB en Linux y 3.8GB en Mac OS X.

Sin embargo, esa memoria extra no viene "gratis". Al correr nuestra aplicación en una máquina virtual de 64 bits la aplicación va a emplear más memoria para hacer lo mismo. Según la experiencia del autor, nuestra aplicación va a requerir entre un 30 y el 50% más de heap que la misma aplicación corriendo en una máquina virtual de 32 bits. El motivo de esto es que las cabeceras de los objetos en las máquinas virtuales de 32 bits son de 8 bytes, mientras que en las máquinas virtuales de 64 bits son de 12 bytes. Además, las referencias a objetos en las máquinas de 32 bits son siempre de 4 bytes, mientras que en las máquinas de 64 bits pueden ser de 8 bytes.

Un heap más grande no significa sólo gastar más memoria RAM, sino que significa también que el recogedor de basura va a necesitar más tiempo para hacer su trabajo, lo cual puede introducir pausas excesivamente largas en la aplicación, y disminuye el rendimiento global de la aplicación.

De todo ello se deriva que, salvo que nos haga falta más memoria de la que es posible emplear en la máquina virtual de 32 bits, lo mejor es emplear una máquina virtual de 32 bits. Pero si necesitamos más memoria, no nos queda más remedio que ir a la máquina de 64 bits.

¿Alguno de vosotros ha usado vosotros alguna vez una máquina virtual de 64 bits? ¿qué tal la experiencia?

Article originally appeared on javaHispano (http://www.javahispano.org/).
See website for complete article licensing information.