Jakie są konsekwencje, jeśli korzystamy z 32-bitowego pliku binarnego na maszynie 64-bitowej. Czy będzie to miało jakikolwiek wpływ, jeśli komputer ma więcej niż 4 GB pamięci RAM (pamięć RAM w systemie jest 8 GB)?uruchamianie 32-bitowego pliku binarnego na maszynie 64-bitowej
Odpowiedz
przy uruchamianiu programów 32-bitowych na maszynach 64-bitowych (zakładając, że system operacyjny pracuje w trybie 64-bitowym), masz następujące ograniczenia:
- binarny nie mogą skorzystać z instrukcji 64bit arytmetycznych. Może to zmniejszyć wydajność.
- Plik binarny nie może adresować więcej niż 4 GB pamięci wirtualnej.
Jednak te 4 GB mogą znajdować się w dowolnym miejscu wewnątrz 8 GB pamięci RAM. Jeśli więc używasz wielu aplikacji 32-bitowych, z których każda używa mniej niż 4 GB, możesz wykorzystać wszystkie swoje 8 GB pamięci RAM.
Należy pamiętać, że z powodu różnych ograniczeń aplikacja może jedynie przydzielić 2 GB pamięci wirtualnej.
Punkt nr. 1 (binarny nie może skorzystać z 64-bitowych instrukcji arytmetycznych) jest fałszywy dla co najmniej dwóch platform. (sparcv9-linux/solaris i [x32 - * - linux] (http://en.wikipedia.org/wiki/X32_ABI)) –
Na x64 32-bitowe pliki binarne nie mają dostępu do 32 górnych bitów [rejestrów ogólnego przeznaczenia] (http://en.wikipedia.org/wiki/X64#Operating_modes). Dlatego przy dodawaniu dwóch liczb 64-bitowych 32-bitowy plik binarny musiałby wydać dwie instrukcje zamiast jednej. @ jørgensen – user1202136
x86-64 dodaje o wiele więcej rzeczy: więcej rejestrów, adresowanie PIC, bezpieczniejszy ABI z wykorzystaniem rejestrów dla wywołań funkcji, co zwykle skutkuje poprawą wydajności, która kompensuje znaczną kompensację spadku wydajności wynikającego z zastosowania większych (bardziej nieprzyjaznych pamięci podręcznej) typy. W innych platformach (sparc64 vs sparc? Mips64 vs mips?) Przejście z 32-bit do 64-bit może faktycznie zmniejszyć wydajność. – ninjalj
Czy odpowiedź "Nie" byłaby wystarczająca? – Mehrdad
Jeśli przez uderzenie masz na myśli pozytywny wpływ, to w pewnym sensie: więcej pamięci RAM oznacza więcej pamięci podręcznej dysku ... – dbrank0