Credo che la domanda principale nella scelta tra 32 e 64 bit non sia "Il mio processore supporta 64 bit - se è così allora dovrei usare 64 perché è il doppio più buono", ma "Quanta memoria ho ? ".
I programmi a 64 bit usano circa il 50% di memoria in più rispetto alle loro controparti a 32 bit. I risultati di questo sono:
-
meno codice / dati possono adattarsi alle cache del processore - & gt; più errori nella cache - & gt; il tuo processore super-veloce aspetta di più per il controller di memoria per recuperare i dati dalla RAM. Il processore deve anche leggere più dati perché è più gonfio.
-
Linux utilizza RAM non allocata per memorizzare i dischi. Meno memoria disponibile disponibile - & gt; meno spazio per le cache del disco - & gt; accesso al disco più lento
-
Una volta esaurita la RAM e il sistema inizia lo swapping - l'accesso al disco è migliaia di volte più lento della RAM, quindi tutti i potenziali vantaggi del codice a 64 bit (vedi sotto) stanno volando fuori dalla finestra.
D'altra parte, in modalità a 64 bit il processore ha più registri, quindi non ha bisogno di accedere alla memoria che spesso, anche, alcuni calcoli (numeri a 64 bit, ecc.) sono più efficienti. In generale, il codice che non è limitato alla memoria viene eseguito leggermente più veloce in modalità 64 bit.
Quindi, se il tuo sistema ha, diciamo, 2GiB di RAM o meno, sceglierei sicuramente 32 bit. Più di 4GiB: i vantaggi di 64 bit stanno diventando più importanti. Intorno al 4GiB c'è una "zona grigia": devi fare una scelta da solo.
Ecco gli screenshot di una (piuttosto vecchia) Ubuntu in esecuzione in un VirtualBox con RAM da 1GiB:
32 bit: usa 388 MiB di RAM subito dopo l'avvio, nessuna applicazione aggiuntiva in esecuzione (dallo screenshot, 397780KiB, che è 388MiB)
64 bit: utilizza 491 MiB di RAM (dallo screenshot, 503452KiB = 491MiB)
Inoltre, nei miei test, un'applicazione web scritta in Python utilizzava fino al 60% di memoria in più su una macchina a 64 bit che portava a una suite di test in esecuzione su 380 secondi su una macchina a 32 bit ma impiegando 523 secondi su uno a 64 bit (entrambi con 1GiB di RAM). Se le macchine non fossero limitate alla RAM, i risultati sarebbero probabilmente diversi (come mostrano i test di phoronix).
Ecco alcuni test più approfonditi e recenti: link
In pratica, è come rinunciare al 30% della RAM in cambio di guadagno possibile del 10% della velocità della CPU.