Supongo que me estoy enfocando en x86, pero en general estoy interesado en el cambio de 32 a 64 bits.¿Son los programas de 64 bits más grandes y más rápidos que las versiones de 32 bits?
Lógicamente, puedo ver que las constantes y punteros, en algunos casos, serán más grandes, por lo que es probable que los programas sean más grandes. Y el deseo de asignar memoria a los límites de palabras para la eficiencia significaría más espacio en blanco entre las asignaciones.
También he oído que el modo de 32 bits en el x86 tiene que vaciar su caché cuando se cambia de contexto debido a la posible superposición de espacios de direcciones 4G.
Entonces, ¿cuáles son los beneficios reales de 64 bits?
Y como pregunta complementaria, ¿128 bit sería aún mejor?
Editar:
que acabo de escribir mi primer programa de 32/64 bits. Hace listas enlazadas/árboles de objetos de 16 bytes (versión 32b) o de 32 bytes (versión 64b) y imprime mucho en stderr, no es un programa realmente útil, y no es algo típico, pero es el primero.
Tamaño: 81128 (32b) v 83672 (64b) - así que no hay mucha diferencia
Velocidad: 17s (32b) v 24s (64b) - que se ejecuta en OS 32 bits (OS-X 10.5.8)
actualización:
observo que un nuevo híbrido x32 ABI (Application Binary Interface) que se está desarrollando es 64b pero utiliza punteros 32b. Para algunas pruebas da como resultado un código más pequeño y una ejecución más rápida que 32b o 64b.
https://sites.google.com/site/x32abi/
Parece un duplicado de http://stackoverflow.com/questions/324015/supplying-64-bit-specific-versions-of-your-software – Suma
Y la mía desde hace unos días: http://stackoverflow.com/questions/2334148/is-there-any-real-point-compiling-a-windows-application-as-64-bit –
Existe cierta coincidencia, estoy de acuerdo, pero todavía no hay compradores en la memoria caché de la CPU y en las partes de 128 bits. Gracias a Suma y John por los enlaces. – philcolbourn