Come regola generale, lo sviluppo - o l'utilizzo - di un sistema operativo a 64 bit, in qualsiasi contesto, sarà più lento dello rispetto allo stesso sistema operativo a 32 bit. Poiché tutti i puntatori sono all'improvviso due volte più grandi, è molto più probabile che si verifichi il soffio della cache e si possano inserire meno dati nella RAM. Ciò rallenta notevolmente la tua applicazione. Normalmente utilizzeresti solo sistemi a 64 bit quando le tue applicazioni devono gestire contemporaneamente più di 2 o 3 GB di dati - una cosa molto comune nel calcolo scientifico e in alcune situazioni di database, ma per il resto estremamente rara. Ecco perché Apple non difende incondizionatamente la compilazione di applicazioni PowerPC in modalità 64 bit, ad esempio: il costo dovuto a carenze di cache e mancanza di memoria è abbastanza alto che l'andare a 64 bit ha senso solo quando si può veramente approfittare del Spazio a 64 bit.
Ma x86 v. AMD64, che è quello che stai veramente chiedendo (visto che stai discutendo di Ubuntu), è una bestia molto speciale. AMD64 non estende solo tutti i puntatori a 64-bit; risolve molte, molte carenze nell'architettura x86, raddoppiando il numero di GPR, semplificando le istruzioni per essere più amichevoli ai moderni progetti di CPU e altro ancora. Per questo motivo, su piattaforme AMD64 solo, si vedrà spesso un notevole incremento delle prestazioni andando a 64-bit.
C'è un'altra area in cui, nello sviluppo del software, ha senso passare a 64 bit: è necessario eseguire molte VM. L'esecuzione di un paio di VM può facilmente farti saltare oltre la barriera di memoria da 3 GB del sistema operativo, rendendo il loro utilizzo molto doloroso. (Funzionerà grazie a una tecnologia chiamata PAE, o Exted Addressing Extensions, che Intel ha inventato per colmare il divario tra sistemi a 32 bit e sistemi a 64 bit, ma il risultato è lento, doloroso da utilizzare come sviluppatore, e non molto ben supportato su Windows.) Passare a un sistema operativo a 64 bit può offrire enormi vantaggi.
fonte
2009-04-28 22:32:51
Ovviamente nessuno dei primi tre punti influisce sui sistemi basati su x86, poiché x86 fornisce una codifica di istruzione a lunghezza variabile completa, con istruzioni comprese tra 1 e 17 byte. Potrebbe anche essere più di 17 al giorno d'oggi. – Promit