Eu encontrei alguns ganhos significativos de desempenho de compilações de 64 bits vs 32 bits ao executar meus benchmarks do Android em um tablet usando um ARM Cortex-A53 de 1,3 GHz. As últimas são compiladas via Eclipse e, em tempo de execução, detectam se a CPU é ARM, Intel ou MIPS e, em seguida, arquitetura de 32 ou 64 bits.
Nas compilações anteriores do Windows para CPUs Intel, o funcionamento de 64 bits poderia ser muito mais rápido que 32 bits devido ao uso de instruções SIMD do tipo SSE. No entanto, o compilador posterior de 32 bits, com incompatibilidade com versões anteriores, produz praticamente o mesmo código e velocidade semelhante.
Os detalhes dos benchmarks do Android são os seguintes, mostrando resultados de 32 e 64 bits do A53 e através de um Cortex-A9 de 1,2 GHz. No final, estão algumas listagens de códigos de montagem que identificam instruções diferentes sendo usadas. Abaixo está um resumo dos resultados.
http://www.roylongbottom.org.uk/android%2064%20bit%20benchmarks.htm#anchorStart
Whetstone Benchmark - desempenho semelhante (pequenas voltas), com a classificação geral influenciada pela compilação do teste usando as funções EXP.
Dhrystone Benchmark - MIPS / MHz mais recente 1,09 32 bits, 1,96 64 bits, 1,10 A9 - talvez 64 bits otimizado demais.
Benchmark Linpack - (N = 100) DP de 64 bits 1,97 x mais rápido, SP 2,67 x - consulte o código de montagem.
Livermore Loops - (24 kernels) média 1,5 vezes mais rápido, intervalo de 0,8 a 7,9 vezes
Testes de cache e RAM L1 / L2
MemSpeed - cálculos flutuantes e inteiros - obtém caches 2,2 x, RAM 1,5 x.
BusSpeed - streaming de dados inteiros e leitura burst - streaming de 2,0 x L1, 1,5 x L2, 1,25 x RAM - explode 2,6 x L1, L2 e RAM semelhantes.
RandMem - leitura e leitura / gravação serial e aleatória da mesma estrutura de indexação complexa - geralmente um pouco mais rápido na leitura, mas leitura / gravação semelhante / mais lenta.
Existem as versões MP acima e tentam medir o máximo de MF MFPS SP (MP-MFLOPS) com 4 núcleos no máximo de 2,7 GFLOPS de 32 bits e 5,5 GFLOPS de 64 bits. Há também uma versão usando intrínsecas NEON, em que o compilador de 64 bits gera instruções alternativas em até 10,8 GFLOPS vs 5,7 em 32 bits - consulte a lista de montagem. Também tenho versões desses benchmarks para tablets baseados no Windows 10 e Android Intel Atom - Windows de 64 e 32 bits, Android de 32 bits - 64 bits completos não totalmente implementados - kernel Linux de 64 bits, mas Android de 32 bits.
http://www.roylongbottom.org.uk/android%20benchmarks.htm
Além disso, tenho versões Linux / Intel de 32 e 64 bits.
Roy Longbottom