Uważam, że głównym pytaniem przy wyborze między 32 a 64 bitami nie jest „Czy mój procesor obsługuje 64 bity - jeśli tak, to powinienem użyć 64, ponieważ to dwa razy więcej”, ale „Ile mam pamięci?” .
Programy 64-bitowe zużywają około 50% więcej pamięci niż ich 32-bitowe odpowiedniki. Rezultaty tego są:
mniej kodu / danych może zmieścić się w pamięci podręcznej procesora -> więcej braków pamięci podręcznej -> twój superszybki procesor czeka więcej, aż kontroler pamięci pobierze dane z pamięci RAM. Procesor musi również odczytać więcej danych, ponieważ jest bardziej rozdęty.
Linux używa nieprzydzielonej pamięci RAM do buforowania dysków. Mniej dostępnej wolnej pamięci -> mniej miejsca na pamięci podręczne dysków -> wolniejszy dostęp do dysku
Gdy skończy Ci się pamięć RAM, a system zacznie się zamieniać - dostęp do dysku jest tysiące razy wolniejszy niż pamięć RAM, więc wszelkie potencjalne korzyści z 64-bitowego kodu (patrz poniżej) znikają z okna.
Z drugiej strony w trybie 64-bitowym procesor ma więcej rejestrów, więc nie musi uzyskiwać dostępu do pamięci, co również często powoduje, że niektóre obliczenia (liczby 64-bitowe itp.) Są bardziej wydajne. Ogólnie więc kod, który nie jest ograniczony pamięcią, działa nieco szybciej w trybie 64-bitowym.
Tak więc, jeśli twój system ma, powiedzmy, 2 GB pamięci RAM lub mniej, zdecydowanie wybrałbym 32 bity. Ponad 4GiB - zalety 64 bitów stają się coraz bardziej widoczne. Wokół 4GiB znajduje się „szara strefa” - musisz sam dokonać wyboru.
Oto zrzuty ekranu (raczej starego) waniliowego Ubuntu działającego w VirtualBox z 1GiB RAM:
32-bitowy: zużywa 388 MB pamięci RAM zaraz po uruchomieniu, nie działają żadne dodatkowe aplikacje (ze zrzutu ekranu 397780 kB, czyli 388 MB)
64-bitowy: wykorzystuje 491 MiB pamięci RAM (ze zrzutu ekranu 503452KiB = 491MiB)
Ponadto podczas moich testów aplikacja napisana w języku Python zużywała do 60% więcej pamięci na komputerze 64-bitowym, co spowodowało uruchomienie zestawu testów w 380 sekund na komputerze 32-bitowym, ale zajęło 523 sekundy na komputerze 64- bit pierwszy (oba z 1GiB pamięci RAM). Gdyby maszyny nie były ograniczone pamięcią RAM, wyniki byłyby prawdopodobnie inne (jak pokazują testy phoronix).
Oto kilka dokładniejszych i najnowszych testów: http://kernel.ubuntu.com/~cking/x32/Quantal-x32-power-memory-comparisons.ods
Zasadniczo przypomina to oddanie 30% pamięci RAM w zamian za ewentualne zwiększenie prędkości procesora o 10%.