Ho riscontrato alcuni significativi miglioramenti delle prestazioni delle compilazioni a 64 bit contro 32 bit eseguendo i miei benchmark Android su un tablet utilizzando un ARM Cortex-A53 da 1,3 GHz. Le ultime vengono compilate tramite Eclipse e, in fase di esecuzione, rilevano se la CPU è ARM, Intel o MIPS, quindi l'architettura a 32 o 64 bit.
Nelle precedenti compilazioni di Windows per CPU Intel, il funzionamento a 64 bit poteva essere molto più veloce di 32 bit a causa dell'utilizzo delle istruzioni SIMD di tipo SSE. Tuttavia, il compilatore successivo a 32 bit, con incompatibilità all'indietro, produce praticamente lo stesso codice e una velocità simile.
I dettagli dei benchmark Android sono i seguenti, mostrando i risultati a 32 e 64 bit dell'A53 e tramite un Cortex-A9 a 1,2 GHz. Alla fine sono presenti alcuni elenchi di codici assembly che identificano le diverse istruzioni utilizzate. Di seguito è riportato un riepilogo dei risultati.
http://www.roylongbottom.org.uk/android%2064%20bit%20benchmarks.htm#anchorStart
Whetstone Benchmark - (piccoli loop) prestazioni simili, con valutazione complessiva influenzata dalla compilazione del test utilizzando le funzioni EXP.
Dhrystone Benchmark - ultimo MIPS / MHz 1,09 32 bit, 1,96 64 bit, 1,10 A9 - forse ottimizzato a 64 bit.
Linpack Benchmark - (N = 100) 64 bit DP 1,97 x più veloce, SP 2,67 x - vedi codice assembly.
Livermore Loops - (24 kernel) in media 1,5 volte più veloce, intervallo da 0,8 a 7,9 volte
Test cache e RAM L1 / L2
MemSpeed - calcoli float e interi - guadagna cache 2,2 x, RAM 1,5 x.
BusSpeed - streaming di dati interi e lettura a raffica - streaming 2,0 x L1, 1,5 x L2, 1,25 x RAM - scoppi 2,6 x L1, L2 e RAM simili.
RandMem - lettura e lettura / scrittura seriale e casuale dalla stessa struttura di indicizzazione complessa - in genere un po 'più veloce in lettura ma lettura / scrittura simile / più lenta.
Esistono poi versioni MP di quanto sopra e tenta di misurare il massimo SP MFLOPS (MP-MFLOPS) con un massimo di 4 core da 2,7 GFLOPS a 32 bit e 5,5 GFLOPS a 64 bit. Esiste anche una versione che utilizza NEON intrinsics in cui il compilatore a 64 bit genera istruzioni alternative fino a 10,8 GFLOPS contro 5,7 a 32 bit - consultare l'elenco dell'assemblaggio. Ho anche versioni di questi benchmark per tablet Windows 10 e Android basati su Intel Atom - Windows 64 bit e 32 bit, Android 32 bit - 64 bit completo non completamente implementato - kernel Linux 64 bit ma Android 32 bit.
http://www.roylongbottom.org.uk/android%20benchmarks.htm
Inoltre, ho versioni Linux / Intel a 32 e 64 bit.
Roy Paciock