Znalazłem znaczący wzrost wydajności kompilacji 64-bitowych w porównaniu z 32-bitowymi po uruchomieniu testów porównawczych Androida na tablecie przy użyciu ARM Cortex-A53 1,3 GHz. Najnowsze są kompilowane za pomocą Eclipse i w czasie wykonywania wykrywają, czy procesor to ARM, Intel czy MIPS, a następnie architektura 32- lub 64-bitowa.
W poprzednich kompilacjach Windows dla procesorów Intel, 64-bitowa praca może być znacznie szybsza niż 32-bitowa dzięki zastosowaniu instrukcji SIMD typu SSE. Jednak późniejszy 32-bitowy kompilator z wsteczną niekompatybilnością wytwarza praktycznie ten sam kod i podobną prędkość.
Szczegóły testów porównawczych dla Androida przedstawiono poniżej, pokazując 32-bitowe i 64-bitowe wyniki z A53 i przez 1,2 GHz Cortex-A9. Na końcu jest kilka list kodów asemblera, które identyfikują różne używane instrukcje. Poniżej znajduje się podsumowanie wyników.
http://www.roylongbottom.org.uk/android%2064%20bit%20benchmarks.htm#anchorStart
Whetstone Benchmark - (małe pętle) podobna wydajność, na ogólną ocenę wpływ miała kompilacja testu z wykorzystaniem funkcji EXP.
Dhrystone Benchmark - najnowsze MIPS / MHz 1,09 32 bity, 1,96 64 bity, 1,10 A9 - może 64 bity ponad zoptymalizowane.
Linpack Benchmark - (N = 100) 64-bitowy DP 1,97 x szybszy, SP 2,67 x - patrz kod zestawu.
Pętle Livermore - (24 jądra) średnio 1,5 raza szybciej, zakres 0,8 do 7,9 razy
Testy pamięci podręcznej i pamięci RAM L1 / L2
MemSpeed - obliczenia zmiennoprzecinkowe i całkowite - zyskuje pamięci podręczne 2,2 x, RAM 1,5 x.
BusSpeed - całkowite przesyłanie danych i odczyt impulsowy - przesyłanie strumieniowe 2,0 x L1, 1,5 x L2, 1,25 x RAM - impulsy 2,6 x L1, podobne L2 i RAM.
RandMem - szeregowy i losowy odczyt i odczyt / zapis z tej samej złożonej struktury indeksowania - generalnie trochę szybszy podczas odczytu, ale podobny / wolniejszy odczyt / zapis.
Następnie istnieją wersje MP powyższej wersji i próby zmierzenia maksymalnego SP MFLOPS (MP-MFLOPS) z maksymalnie 4 rdzeniami 2,7 GFLOPS w wersji 32-bitowej i 5,5 GFLOPS w wersji 64-bitowej. Istnieje również wersja wykorzystująca elementy wewnętrzne NEON, w której 64-bitowy kompilator generuje alternatywne instrukcje przy maksymalnie 10,8 GFLOPS vs 5,7 przy 32 bitach - patrz zestawienie. Mam również wersje tych testów wydajności dla tabletów z systemem Windows 10 i Android Intel Atom - 64-bitowy i 32-bitowy system Windows, 32-bitowy system Android - pełny 64-bitowy brak pełnej implementacji - 64-bitowe jądro Linuksa, ale 32-bitowe Android.
http://www.roylongbottom.org.uk/android%20benchmarks.htm
Dodatkowo mam 32-bitowe i 64-bitowe wersje Linux / Intel.
Roy Longbottom