Credo che la domanda principale quando si sceglie tra 32 e 64 bit non sia "Il mio processore supporta 64 bit - in tal caso, dovrei usare 64 perché è due volte più buono", ma "Quanta memoria ho?" .
I programmi a 64 bit utilizzano circa il 50% di memoria in più rispetto alle loro controparti a 32 bit. I risultati di questo sono:
meno codice / dati possono essere inseriti nella cache del processore -> più errori cache -> il tuo processore superveloce attende di più che il controller di memoria recuperi i dati dalla RAM. Il processore deve anche leggere più dati perché è più gonfio.
Linux utilizza RAM non allocata per memorizzare nella cache i dischi. Meno memoria libera disponibile -> meno spazio per le cache del disco -> accesso al disco più lento
Una volta esaurita la RAM e il sistema inizia a scambiare, 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à 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. Quindi, in genere, il codice che non è limitato dalla memoria viene eseguito leggermente più velocemente 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 sempre più importanti. Intorno a 4GiB è una "zona grigia" - devi fare una scelta da solo.
Ecco gli screenshot di un (piuttosto vecchio) Ubuntu vanilla in esecuzione in un VirtualBox con 1GiB RAM:
32 bit: utilizza 388 MiB di RAM subito dopo l'avvio, nessuna applicazione aggiuntiva in esecuzione (dallo screenshot, 397780 KiB, che è 388 MiB)
64 bit: utilizza 491 MiB di RAM (dallo screenshot, 503452 KiB = 491 MiB)
Inoltre, nei miei test, un'applicazione Web scritta in Python ha utilizzato fino al 60% di memoria in più su un computer a 64 bit, il che ha portato a una suite di test in esecuzione in 380 secondi su un computer a 32 bit ma impiegando 523 secondi su un 64- bit uno (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: http://kernel.ubuntu.com/~cking/x32/Quantal-x32-power-memory-comparisons.ods
Fondamentalmente, è come rinunciare al 30% della RAM in cambio di un possibile guadagno del 10% della velocità della CPU.