Esto cubre casi todo lo que necesita saber sobre los beneficios de Apple al cambiar a ARM64.
enlace
tl; dr conclusión / respuesta desde el enlace
También es importante señalar las cosas a las que se refiere "64 bits", ya que también hay mucha confusión en esta área. En particular, "64 bits" no incluye :
- Tamaño de la dirección RAM física. La cantidad de bits utilizados para hablar realmente con la RAM (y, por lo tanto, la cantidad de RAM que el hardware puede admitir) se desacopla de la cuestión del bitness de la CPU. Las CPU ARM han oscilado entre 26 y 40 bits, y esto puede cambiarse independientemente del resto.
- Tamaño del bus de datos. La cantidad de datos obtenidos de la memoria RAM o caché también se desacopla. Las instrucciones individuales de la CPU pueden solicitar una cierta cantidad de datos, pero la cantidad de datos que realmente se obtienen puede ser independiente, ya sea dividiendo la búsqueda en partes más pequeñas o obteniendo más de lo necesario. El iPhone 5 ya recupera datos de la memoria en trozos de 64 bits, y existen tamaños de trozos de hasta 192 bits en el mundo de las PC.
- Cualquier cosa relacionada con el punto flotante. El tamaño del registro de FPU y el diseño interno son independientes, y las CPU ARM han tenido registros de FPU de 64 bits desde mucho antes de ARM64.
A7 de "64 bits" no es solo un truco de marketing, sino que tampoco es un avance sorprendente que permite una nueva clase de aplicaciones. La verdad, como sucede a menudo, está en el medio.
El simple hecho de pasar a 64 bits hace poco. En algunos casos hace que los cálculos sean un poco más rápidos, un uso de memoria algo mayor para la mayoría de los programas, y hace que ciertas técnicas de programación sean más viables. En general, no es muy significativo.
La arquitectura ARM cambió un montón de otras cosas en su transición a 64 bits. Un mayor número de registros y un conjunto de instrucciones revisadas y optimizadas hacen que la ganancia de rendimiento sea superior al ARM de 32 bits.
Apple aprovechó la transición para realizar algunos cambios propios. El mayor cambio es un recuento de retenciones en línea, que elimina la necesidad de realizar una búsqueda de tabla hash costosa para las operaciones de retener y liberar en el caso común. Dado que esas operaciones son tan comunes en la mayoría de los códigos de Objective-C, esta es una gran victoria. Los indicadores de limpieza de recursos por objeto hacen que la desasignación de objetos sea bastante más rápida en ciertos casos. En general, el costo de crear y destruir un objeto se reduce aproximadamente a la mitad. Los punteros etiquetados también permiten obtener un buen rendimiento y reducir el uso de memoria.
tl; dr tl; dr
- La RAM (memoria) está desacoplada de la bitness de la CPU y no tiene ningún juego en su rendimiento
- 64-bit no da 2x impulso por sí mismo
- Debido a la transición a 64 bits administrado por Apple, introduzca algunas formas inteligentes de mejorar el rendimiento