2009-08-07 10 views
7

C'è qualche settore specifico di Software Engineer/Computer Science in cui c'è una marcata differenza quando si sviluppa per sistemi a 64 bit? Ho iniziato a programmare per circa 10 anni e, dalla rottura dei sistemi a 64 bit, il mio codice non è cambiato di un bit.Come sviluppare per sfruttare i sistemi a 64 bit?

Quali applicazioni che un singolo codificatore può codificare come progetto secondario richiedono l'utilizzo della tecnologia a 64 bit?

risposta

7

Qualunque cosa che richiede più di 4 GB di memoria di lavoro e di programma sarebbe sicuramente qualificata, poiché questa è la quantità massima di memoria che un sistema a 32 bit può indirizzare direttamente.

Poiché i numeri a 64 bit possono risiedere nei registri della CPU, i calcoli che richiedono numeri di queste dimensioni vedrebbero un miglioramento delle prestazioni.

2

Abbiamo recentemente trasferito alcune delle nostre librerie utilizzate internamente a 64 bit. Il codice C non è cambiato affatto; dovevamo solo ottenere le versioni a 64 bit delle librerie di terze parti a cui ci colleghiamo e capire quali nuove direttive del compilatore dovevamo usare. Il più grande problema è stato trovare le versioni a 64 bit delle nostre dipendenze e il refactoring del nostro sistema di build per gestire sia a 32 bit che a 64 bit.

Questo non vuol dire che altri software non richiedono modifiche. Ad esempio, se impacchettate i dati per adattarli ai limiti delle parole, ora potreste essere inclini a confezionarli in modo diverso quando programmate un sistema a 64 bit.

2

Oltre allo spazio degli indirizzi o ai calcoli di grandi dimensioni, il raddoppiamento della dimensione della parola aiuta di più nelle cose di basso livello, e soprattutto per le persone che stanno eseguendo il kernel hacking o scrivendo i driver dei dispositivi. Ad esempio, supponiamo di avere un flusso di byte da una connessione di rete e devi elaborarli. Ora è possibile estrarre quei byte dalla memoria principale ai registri della CPU 8 alla volta anziché a 4. Ma penso che sia necessario disporre di una libreria di stringhe "a 64 bit" per trarne vantaggio.

Aneddoticamente, abbiamo osservato un aumento delle prestazioni durante l'aggiornamento da SQL Server a 32 bit a SQL Server a 64 bit (2005) sullo stesso hardware (una macchina a 64 bit).

0

Se avete bisogno di chiedere, probabilmente non otterrete alcun vantaggio, poiché probabilmente non state costruendo nel vostro codice alcuna ipotesi sulla dimensione degli Ints. Piuttosto pochi casi d'uso, e tutti abbastanza bassi, vedranno qualsiasi accelerazione. I bignum e l'aritmetica dei numeri interi pesanti su numeri molto grandi saranno più veloci (come la crittografia).

Problemi correlati