Wirtualna maszyna Java - 32b vs. 64b
Na komputerze 32b można zainstalować tylko wersję 32b maszyny JVM. Na maszynie 64b użytkownik ma wybór między wersją 32b i 64b. Ale są w tym pewne niuanse, które mogą wpływać na działanie naszych aplikacji Java.
Jeśli aplikacja Java wykorzystuje mniej niż 4G pamięci, powinniśmy używać JVM 32b nawet na maszynach 64b. Dzieje się tak, ponieważ odwołania do pamięci w tym przypadku miałyby tylko 32b, a manipulowanie nimi byłoby mniej kosztowne niż manipulowanie adresami 64b. W tym przypadku maszyna JVM 64b działałaby gorzej, nawet gdybyśmy używali OOPS (zwykłych wskaźników obiektów). Używając OOPS, maszyna JVM może używać adresów 32b w JVM 64b. Jednak manipulowanie nimi byłoby wolniejsze niż rzeczywiste odniesienia 32b, ponieważ bazowe odniesienia natywne nadal miałyby 64b.
Jeśli nasza aplikacja będzie zużywać więcej niż 4G pamięci, będziemy musieli użyć wersji 64b, ponieważ referencje 32b mogą adresować nie więcej niż 4G pamięci. Możemy mieć obie wersje zainstalowane na tym samym komputerze i przełączać się między nimi za pomocą zmiennej PATH.