J'ai constaté des gains de performances significatifs de compilations 64 bits par rapport à 32 bits lors de l'exécution de mes tests Android sur une tablette à l'aide d'un ARM Cortex-A53 à 1,3 GHz. Les dernières sont compilées via Eclipse et, au moment de l'exécution, détectent si le CPU est ARM, Intel ou MIPS, puis l'architecture 32 bits ou 64 bits.
Sur les compilations Windows précédentes pour les processeurs Intel, le fonctionnement 64 bits pouvait être beaucoup plus rapide que 32 bits en raison de l'utilisation d'instructions SIMD de type SSE. Cependant, le compilateur 32 bits ultérieur, avec une incompatibilité vers l'arrière, produit pratiquement le même code et une vitesse similaire.
Les détails des benchmarks Android sont les suivants, montrant les résultats 32 bits et 64 bits de l'A53 et via un Cortex-A9 1,2 GHz. À la fin se trouvent quelques listes de codes d'assemblage qui identifient les différentes instructions utilisées. Voici un résumé des résultats.
http://www.roylongbottom.org.uk/android%2064%20bit%20benchmarks.htm#anchorStart
Whetstone Benchmark - (minuscules boucles) performances similaires, avec une note globale influencée par la compilation du test à l'aide des fonctions EXP.
Dhrystone Benchmark - dernier MIPS / MHz 1.09 32 bits, 1.96 64 bits, 1.10 A9 - peut-être 64 bits optimisé.
Linpack Benchmark - (N = 100) 64 bits DP 1,97 x plus rapide, SP 2,67 x - voir code d'assemblage.
Livermore Loops - (24 noyaux) en moyenne 1,5 fois plus rapide, plage de 0,8 à 7,9 fois
Tests de cache et de RAM L1 / L2
MemSpeed - calculs flottants et entiers - gagne des caches 2,2 x, RAM 1,5 x.
BusSpeed - streaming de données entières et lecture en rafale - streaming 2,0 x L1, 1,5 x L2, 1,25 x RAM - rafales 2,6 x L1, L2 et RAM similaires.
RandMem - lecture et lecture / écriture série et aléatoire à partir de la même structure d'indexation complexe - généralement un peu plus rapide à la lecture mais lecture / écriture similaire / plus lente.
Ensuite, il existe des versions MP de ce qui précède et tente de mesurer le maximum SP MFLOPS (MP-MFLOPS) avec un maximum de 4 cœurs de 2,7 GFLOPS 32 bits et 5,5 GFLOPS 64 bits. Il existe également une version utilisant les intrinsèques NEON où le compilateur 64 bits génère des instructions alternatives jusqu'à 10,8 GFLOPS contre 5,7 à 32 bits - voir la liste des assembleurs. J'ai également des versions de ces benchmarks pour Windows 10 et les tablettes basées sur Intel Intel Atom - Windows 64 bits et 32 bits, Android 32 bits - 64 bits complets pas complètement implémentés - Noyau Linux 64 bits mais Android 32 bits.
http://www.roylongbottom.org.uk/android%20benchmarks.htm
De plus, j'ai des versions Linux / Intel 32 bits et 64 bits.
Roy Londubat