2012-03-29 33 views
6

Cuáles son las implicaciones si estamos ejecutando una máquina de 32 binarios en 64 bits. Tendrá algún impacto si la máquina tiene más de 4 GB de RAM (la RAM en el sistema es 8GB)?ejecutando un binario de 32 bits en una máquina de 64 bits

+5

¿La respuesta "No" sería suficiente? – Mehrdad

+0

Si por impacto se refiere a un impacto positivo, en cierto modo: más RAM significa más memoria caché de disco ... – dbrank0

Respuesta

5

Al ejecutar binarios de 32 bits en máquinas de 64 bits (suponiendo que el sistema operativo se ejecuta en modo de 64 bits), que tiene las siguientes limitaciones:

  1. El binario no puede tomar ventaja de instrucciones de 64 bits aritméticos. Esto podría reducir el rendimiento.
  2. El binario no puede ocuparse de más de 4 GB de memoria virtual.

Sin embargo, estos 4GB pueden ubicarse en cualquier lugar dentro de sus 8GB de RAM. Entonces, si está ejecutando muchas aplicaciones de 32 bits, cada una con menos de 4 GB, aprovechará todos sus 8 GB de RAM.

Tenga en cuenta que, debido a varias limitaciones, su aplicación podría en realidad ser capaz de asignar 2GB de memoria virtual.

+0

Punto no. 1 (El binario no puede aprovechar las instrucciones aritméticas de 64 bits) es falso para al menos dos plataformas. (sparcv9-linux/solaris y [x32 - * - linux] (http://en.wikipedia.org/wiki/X32_ABI)) –

+0

En x64, los binarios de 32 bits no pueden acceder a los 32 bits superiores de los [Registros de propósito general] (http://en.wikipedia.org/wiki/X64#Operating_modes). Por lo tanto, al agregar dos números de 64 bits, un binario de 32 bits debería emitir dos instrucciones en lugar de una. @ jørgensen – user1202136

+0

x86-64 agrega muchas cosas más: más registros, direccionamiento relativo al PIC, un ABI más seguro usando registros para llamadas a funciones, lo que resulta típicamente en mejoras de rendimiento que compensan significativamente la disminución del rendimiento implícita en el uso de mayor (más antipático) tipos. En otras plataformas (sparc64 vs sparc? Mips64 vs mips?) Que van desde 32 bits a 64 bits en realidad puede disminuir el rendimiento. – ninjalj

Cuestiones relacionadas