I okazuje się, że przynajmniej w pewnych sprawach, np. w całkowaniu numerycznym ;-) Java na M1 jest szybsza gdy działa w trybie emulacji x86-64, niż gdy działa w trybie aarch64 (czyli "natywnym" ARMowym dla M1).
Odpaliłem na laptopie z M1 programik do całkowania numerycznego (w obszarze od -10 do 10, w prawie 21.5 mln kroków, w pętli która sprawia, że wykonuje się to 10 razy).
Na Macbooku 16 z M1 z 2021 roku.
No i dla Java 11 (od Azul) wyniki są takie:
x86-64: 5611 ms
aarch64: 7528 ms
Podobne wyniki są dla Java 18.
Ciekawiej się robi dla Oracle'owej Java 18 ;-)
x86-64: 5811 ms
aarch64: 31340 ms
Czyli w przypadku JVM od Oracle'a jest wersja dla ARMa o 5.4 raza wolniejsza ;-)
Nie umiem powiedzieć czy chodzi o różnice w implementacji HostSpota czy może o jakiś kod natywny.
Ale i tak intrygujące :-)
Podobne postybeta
W końcu dane z M1, które w Java'ie mówią, że to jest ARM :-)
Dla Java'y Apple Silicon M1 to jednak nadal x86 ;-)
Wszędobylska Java :-)
JNA, czyli w Java'ie też można :-)
"os.arch", "os.name", "sun.arch.data.model" co to jest i co pokazuje na jakiej maszynie i OSie? ;-)