Я обнаружил, что некоторые 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 и Cortex-A9 с частотой 1,2 ГГц. В конце приведены некоторые списки ассемблерных кодов, которые идентифицируют различные используемые инструкции. Ниже приведена сводка результатов.
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 DP 1.97 x быстрее, SP 2.67 x - см. Код сборки.
Петли Ливермора - (24 ядра) в среднем в 1,5 раза быстрее, в диапазоне от 0,8 до 7,9 раза
Тесты кэш-памяти и оперативной памяти L1 / L2
MemSpeed - вычисления с плавающей запятой и целочисленные вычисления - получает кэш 2,2, оперативная память 1,5.
BusSpeed - целочисленная потоковая передача данных и пакетное чтение - потоковая передача 2.0 x L1, 1.5 x L2, 1.25 x RAM - пакеты 2,6 x L1, аналогичные L2 и RAM.
RandMem - последовательное и случайное чтение и чтение / запись из одной и той же сложной структуры индексации - обычно немного быстрее при чтении, но аналогично / медленнее чтения / записи.
Кроме того, существуют версии MP, описанные выше, и делается попытка измерить максимальный SP MFLOPS (MP-MFLOPS) с максимумом 4 ядра: 2,7 GFLOPS 32 бит и 5,5 GFLOPS 64 бит. Существует также версия, использующая встроенные функции NEON, где 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.
Рой Лонгботтом