2012-03-29 22 views
6

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

+5

Czy odpowiedź "Nie" byłaby wystarczająca? – Mehrdad

+0

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

Odpowiedz

5

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:

  1. binarny nie mogą skorzystać z instrukcji 64bit arytmetycznych. Może to zmniejszyć wydajność.
  2. 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.

+0

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)) –

+0

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

+0

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

Powiązane problemy