Ich habe beim Ausführen meiner Android-Benchmarks auf einem Tablet mit einem 1,3-GHz-ARM-Cortex-A53 einige signifikante Leistungssteigerungen bei 64-Bit-Kompilierungen gegenüber 32-Bit festgestellt. Die neuesten werden über Eclipse kompiliert und erkennen zur Laufzeit, ob es sich bei der CPU um ARM, Intel oder MIPS handelt, und dann um eine 32-Bit- oder 64-Bit-Architektur.
Bei früheren Windows-Kompilierungen für Intel-CPUs konnte die 64-Bit-Arbeit aufgrund der Verwendung von SIMD-Anweisungen vom Typ SSE viel schneller als 32-Bit sein. Der spätere 32-Bit-Compiler mit Abwärtsinkompatibilität erzeugt jedoch praktisch den gleichen Code und eine ähnliche Geschwindigkeit.
Details zu den Android-Benchmarks finden Sie im Folgenden. Sie zeigen 32-Bit- und 64-Bit-Ergebnisse vom A53 und über einen 1,2-GHz-Cortex-A9. Am Ende finden Sie einige Assemblycode-Listen, die verschiedene verwendete Anweisungen identifizieren. Unten finden Sie eine Zusammenfassung der Ergebnisse.
http://www.roylongbottom.org.uk/android%2064%20bit%20benchmarks.htm#anchorStart
Whetstone Benchmark - (winzige Schleifen) ähnliche Leistung, wobei die Gesamtbewertung durch die Zusammenstellung des Tests mit EXP-Funktionen beeinflusst wird.
Dhrystone Benchmark - neueste MIPS / MHz 1,09 32 Bit, 1,96 64 Bit, 1,10 A9 - möglicherweise 64 Bit überoptimiert.
Linpack Benchmark - (N = 100) 64-Bit-DP 1,97 x schneller, SP 2,67 x - siehe Baugruppencode.
Livermore Loops - (24 Kernel) durchschnittlich 1,5-mal schneller, Bereich 0,8 bis 7,9-mal
L1 / L2-Cache- und RAM-Tests
MemSpeed - Float- und Integer-Berechnungen - erhält Caches 2,2 x, RAM 1,5 x.
BusSpeed - Integer-Daten-Streaming und Burst-Lesen - Streaming 2,0 x L1, 1,5 x L2, 1,25 x RAM - Bursts 2,6 x L1, ähnlich L2 und RAM.
RandMem - serielles und zufälliges Lesen und Lesen / Schreiben aus derselben komplexen Indexierungsstruktur - im Allgemeinen etwas schneller beim Lesen, aber ähnlich / langsamer beim Lesen / Schreiben.
Dann gibt es MP-Versionen der oben genannten und Versuche, maximale SP-MFLOPS (MP-MFLOPS) mit maximal 4 Kernen von 2,7 GFLOPS 32 Bit und 5,5 GFLOPS 64 Bit zu messen. Es gibt auch eine Version mit NEON-Intrinsics, bei der der 64-Bit-Compiler alternative Anweisungen mit bis zu 10,8 GFLOPS gegenüber 5,7 mit 32 Bit generiert - siehe Assembly-Liste. Ich habe auch Versionen dieser Benchmarks für Windows 10 und Android Intel Atom-basierte Tablets - 64-Bit- und 32-Bit-Windows, 32-Bit-Android - Voll 64-Bit nicht vollständig implementiert - 64-Bit-Linux-Kernel, aber 32-Bit-Android.
http://www.roylongbottom.org.uk/android%20benchmarks.htm
Außerdem habe ich 32-Bit- und 64-Bit-Linux / Intel-Versionen.
Roy Longbottom