Ich glaube, die Hauptfrage bei der Auswahl zwischen 32 und 64 Bit ist nicht "Unterstützt mein Prozessor 64 Bit - wenn ja, sollte ich 64 verwenden, weil das doppelt so gut ist", sondern "Wie viel Speicher habe ich?". .
64-Bit-Programme belegen etwa 50% mehr Speicher als ihre 32-Bit-Gegenstücke. Die Ergebnisse davon sind:
weniger Code / Daten passen in Prozessor-Caches -> mehr Cache-Ausfälle -> Ihr superschneller Prozessor wartet mehr darauf, dass der Speichercontroller Daten aus dem RAM abruft. Der Prozessor muss auch mehr Daten lesen , da diese aufgebläht sind.
Linux verwendet nicht zugewiesenen RAM, um Festplatten zwischenzuspeichern. Weniger freier Speicher verfügbar -> weniger Speicherplatz für Festplatten-Caches -> langsamerer Festplattenzugriff
Sobald der Arbeitsspeicher erschöpft ist und das System mit dem Auslagern beginnt, ist der Festplattenzugriff tausendmal langsamer als der des Arbeitsspeichers, sodass alle potenziellen Vorteile von 64-Bit-Code (siehe unten) aus dem Fenster fliegen.
Andererseits verfügt der 64-Bit-Modus über mehr Register, sodass er nicht auf den Arbeitsspeicher zugreifen muss, der häufig auch effizienter ist als einige Berechnungen (64-Bit-Zahlen usw.). Code, der nicht speicherbeschränkt ist, wird daher im 64-Bit-Modus im Allgemeinen etwas schneller ausgeführt.
Wenn Ihr System beispielsweise 2 GB RAM oder weniger hat, würde ich definitiv 32 Bit wählen. Mehr als 4 GB - die Vorteile von 64 Bit werden immer deutlicher. Bei 4GiB handelt es sich um eine "Grauzone" - Sie müssen selbst eine Auswahl treffen.
Hier sind Screenshots eines (ziemlich alten) Vanilla-Ubuntu, das in einer VirtualBox mit 1 GB RAM läuft:
32 Bit: Verwendet direkt nach dem Booten 388 MB RAM, es werden keine zusätzlichen Anwendungen ausgeführt (vom Screenshot 397780 KB, das sind 388 MB).
64 Bit: verwendet 491 MiB RAM (vom Screenshot 503452KiB = 491MiB)
Außerdem hat eine in Python geschriebene Webanwendung in meinen Tests auf einem 64-Bit-Computer bis zu 60% mehr Speicher verbraucht, was dazu führte, dass eine Testsuite auf einem 32-Bit-Computer in 380 Sekunden ausgeführt wurde, auf einem 64-Bit-Computer jedoch 523 Sekunden benötigte. Bit eins (beide mit 1 GB RAM). Wenn die Maschinen nicht RAM-begrenzt wären, würden die Ergebnisse wahrscheinlich anders ausfallen (wie Phoronix-Tests zeigen).
Hier sind einige gründlichere und aktuellere Tests: http://kernel.ubuntu.com/~cking/x32/Quantal-x32-power-memory-comparisons.ods
Im Grunde ist es so, als würde man 30% des Arbeitsspeichers im Austausch für einen möglichen Gewinn von 10% der CPU-Geschwindigkeit aufgeben .