Originariamente inviato da Ilmalcom
Permettimi qualche domandina:
Orpola, siamo qui per questo
- per quanto riguarda la compilazione di sorgenti progettati per i 32 bit, quest'operazione è sempre possibile? Hai scritto che le prestazioni possono calare, ma comunque ogni software disponibile per i386 può essere ricompilato sul 64 bit?
Non ho studi analitici sottomano, ma posso sbilanciarmi nel dire che qualsiasi software scritto in C che non faccia accesso diretto all'hardware (il tipico software applicativo) puo` essere ricompilato as-is e usato su amd64.

Non scordiamoci che amd64 e` prima che un'architettura nuova, un'estensione di i386, e quindi pienamente compatibile con esso.
Il discorso prestazioni in questo caso: software che fa uso di interi lunghi o dati (piu`) grossi, tipo lame (mi pare), oggenc, mysql (mi pare), *ssl*, otterra` ovvi benefici immediati; ricompilando in modo nativo (64 bit) si ha inoltre a disposizione su amd64 il doppio dei registri della CPU rispetto a i386 (16 contro 8); non solo: il costo della rilocazione del codice (-fPIC con GCC, librerie condivise) si riduce molto.
Da questo mi aspetterei un'ulteriore tangibile incremento prestazionale, ma non so quantificarlo ne quanto bene gcc faccia il suo dovere in questo caso.

Problema: certo software (number crunching: crittografia, multimedia) fa uso di ottimizzazioni assembly. Tali ottimizzazioni non sono compatibili tout-court con amd64: cambia la sintassi, talvolta la semantica delle istruzioni;
tale codice va adattato, e sinche` non viene adattato amd64 va avanti a C puro, e quindi rallenta, a volte anche tanto rispetto a quanto potrebbe fare.

- hai sollevato uno dei dubbi che più mi affliggono per quanto riguarda l'acquisto di una CPU a 64 bit, cioè... perchè l'utente medio dovrebbe comprarla? In ambienti dove la precisione di calcolo è fondamentale, sicuramente i 64 bit si fanno valere, ma per l'uso del pc che si fa tutti i giorni?
Facciamo un distinguo tra athlon64 e amd64.
Una volta che uno ha un athlon64 (o opteron), puo` usarlo sia in modalita` "compatibile" a 32 bit (i386), sia in modalita` nativa a 64 bit (amd64).
Stanti tutti i discorsi sulla (mancata) ottimizzazione del codice per amd64, nulla vieta di usare un athlon64 a 32 bit, e godere di tutti i benefici del processore:
- miglior gestione dell'energia
- ottimo SMP
- migliori prestazioni in I/O
- ottime prestazioni grazie al memory controller integrate
- pagine di codice non scrivibili (un po` di protezione da buffer overflow)

Personalmente un'athlon64 lo consiglio senz'altro, come processore. Le perplessita` rimangono sull'uso, se a 32 o a 64 bit. Probabilmente per chi non e` appassionato e/o smanettone, conviene ancora usarlo a 32 bit ed evitarsi i problemi di gioventu` della piattaforma.

- in fase di emulazione, non ho capito come sono le prestazioni del software rispetto al classico 32 bit...
Non posso fare benchmark con un athlon di pari frequenza, perche` in casa non ne ho. Posso pero` dirti che, con libavcodec, il mio athlon64 3200+ in 32 bit e` circa tre volte piu` veloce del mio Athlon XP 1500+

PS: il termine "emulazione di 32 bit" nel caso di athlon64 e` improprio, il codice viene eseguito nativamente!