Я виявив значне підвищення продуктивності 64-бітових компіляцій проти 32-х бітних під час роботи моїх Android-орієнтирів на планшеті з використанням 1,3 ГГц ARM Cortex-A53. Останні складаються за допомогою Eclipse і під час виконання роботи виявляють, чи є процесор ARM, Intel чи MIPS, а потім 32-бітова або 64-бітна архітектура.
У попередніх компіляціях Windows для процесорів Intel 64-бітна робота може бути набагато швидшою, ніж 32-бітна завдяки використанню інструкцій SIMD типу SSE. Однак пізніший 32-розрядний компілятор із зворотною несумісністю створює практично той самий код і схожу швидкість.
Детальна інформація про Android-орієнтири наведена нижче, показуючи 32-бітні та 64-бітні результати від A53 та за допомогою 1.2 GHz Cortex-A9. Наприкінці наведено декілька списків кодів збірки, які визначають різні інструкції, що використовуються. Нижче наведено підсумок результатів.
http://www.roylongbottom.org.uk/android%2064%20bit%20benchmarks.htm#anchorStart
Whetstone Benchmark - аналогічні показники (крихітні петлі), на загальний рейтинг впливає складання тесту з використанням функцій EXP.
Dhrystone Benchmark - останні MIPS / MHz 1,09 32 біт, 1,96 64 біт, 1,10 A9 - можливо, 64 біт над оптимізованим.
Linpack Benchmark - (N = 100) 64-бітний DP 1.97 x швидше, SP 2.67 x - див. Код складання.
Livermore Loops - (24 ядра) в середньому в 1,5 рази швидше, діапазон від 0,8 до 7,9 разів
Тести кеш-пам'яті L1 / L2 та оперативної пам’яті
MemSpeed - обчислення з плаваючими і цілими числами - отримує кеші 2,2 х, оперативна пам'ять 1,5 х.
BusSpeed - ціла потокова передача даних і зчитування розривів - потокова передача 2,0 х L1, 1,5 х L2, 1,25 х оперативної пам’яті - обриви 2,6 х L1, подібні L2 та оперативної пам’яті.
RandMem - послідовне та випадкове читання та читання / запис із тієї ж складної структури індексації - як правило, трохи швидше при читанні, але схоже / повільніше читання / запис.
Потім є версії MP вищезазначених та намагаються виміряти максимальний SP MFLOPS (MP-MFLOPS) з 4-х основним максимумом 2,7 GFLOPS 32 біт і 5,5 GFLOPS 64 біт. Існує також версія, що використовує NEON intrinsics, де 64-розрядний компілятор генерує альтернативні вказівки до 10,8 GFLOPS проти 5,7 на 32 біта - див. Список складання. У мене також є версії цих орієнтирів для планшетів на базі Windows 10 та Android Intel Atom - 64-бітний і 32-бітний Windows, 32-розрядний Android - повний 64-бітний не повністю реалізований - 64-бітове ядро Linux, але 32-бітний Android.
http://www.roylongbottom.org.uk/android%20benchmarks.htm
Крім того, у мене є 32-бітна та 64-бітна версії Linux / Intel.
Рой Лонгботтом