Devo installare la versione a 32 bit o a 64 bit di un programma?

Sì, dovresti installare la versione a 64 bit. Più persone fanno girare applicazioni a 64-bit, più siamo vicini a fare la transizione nello spazio desktop completamente. Apparentemente, il codice a 32-bit sui processori x86 in realtà subisce un piccolo colpo in termini di prestazioni, in quanto viene emulato invece di essere eseguito, anche se non l'ho letto per anni, e ammetto che era prima della mia formazione formale. Prendetelo con un grano di sale, sembra eccessivamente semplificato e non ho scavato nel problema.

Le versioni a 64 bit del software x86 permettono di indirizzare più memoria, di fare calcoli interi più grandi in meno tempo, di migliorare l'allocazione dei registri da parte del compilatore, dato che ora ci sono 8 registri aggiuntivi per scopi generali, e di avere una maggiore quantità di istruzioni che possono essere scelte dal compilatore per implementare il programma (anche se si può sostenere che l'unico punto in cui queste istruzioni sono usate è nelle librerie codificate a mano, o attraverso intrinseci del compilatore inclusi dall'uomo).

Il tuo commento sul comportamento della cache e sull'aumento della dimensione del puntatore che aumenta la pressione della cache non è probabilmente un problema enorme. Anche se è vero che i puntatori occupano il doppio dello spazio in memoria, non è che un programma normale abbia una grande quantità di puntatori nel suo insieme di lavoro, cioè, la quantità di puntatori che sono in uso in un piccolo periodo di tempo è probabilmente abbastanza piccola che è un punto irrilevante. Le cose rimangono in una cache solo quando vengono usate pesantemente, e i puntatori tendono a puntare a dati più grandi di loro stessi (certamente puntano a linee di cache più grandi di loro stessi!), e se un puntatore viene usato (leggi: dereferenziato, o passato a una procedura per essere dereferenziato), allora dati più grandi di lui sono probabilmente già nella cache.

Questo dipende naturalmente dai modelli di accesso. Non ho dati per supportare la mia precedente affermazione, ma se siete davvero curiosi indagherò su alcuni carichi di lavoro per i quali posso effettivamente pubblicare i dati, se mi fate un ping e me lo chiedete gentilmente :).

Personalmente, sarei più preoccupato con la dimensione della parola che aumenta da 4 byte a 8 byte per la maggior parte delle operazioni intere che per i puntatori. Tuttavia, abbiamo schemi di compressione della cache per affrontare questo problema, almeno nelle memorie cache di livello più alto, e in realtà non risulta che faccia troppo male.