View Single Post
Old 31-01-2005, 09:41   #90
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
x fek: indubbiamente non tutte le applicazioni beneficeranno dei vantaggi offerti dall'architettura x86-64, ma mediamente dovremmo assistere a un aumento delle prestazioni nell'ordine del 15-20% (questi dati li fornì AMD, penso circa 3 anni fa, dai risultati delle simulazioni che fece).

Ad esempio, se prendiamo i test effettuati lo scorso anno con la beta di XP/64, notiamo che la compressione di un video con XviD è migliorata del 15% (in meno del tempo di esecuzione), pur essendo programma e codec a 32 bit.

Le prove con i giochi hanno fatto vedere che, a causa dei driver immaturi, le prestazioni fino a 1024x768 erano nettamente inferiori all'esecuzione degli stessi con XP (a 32 bit), ma andavano via via migliorando e addirittura a 1280x1024 erano migliori: quindi il layer WOW64 è stato capace di sopperire, e addirittura di migliorare, ai problemi dei driver.

Le prove fatte con Linux hanno evidenziato che POVRay e MySQL compilati a 64 bit e fatti girare sul s.o. a 64 bit hanno avuto incrementi prestazionali anche superiori al 40% sulla stessa macchina, ma con le medesime versioni a 32 bit.

E' chiaro che, come giustamente sottolinei, nell'usare i puntatori a 64 bit siamo in presenza di una perdita di prestazioni, ma è anche evidente che il maggior numero di registri general purpose disponibili (anche per le SSE), unito all'ortogonalità dei registri (che aiuta i compilatori) e alla presenza di una modalità d'indirizzamento relativa al PC, hanno contribuito, e non poco, a sanare questa perdita e mediamente ad ottenere dei risultati migliori.

E' anche chiaro che non interessa a nessuno sapere che la GUI delle applicazioni, che fanno ampio uso di oggetti e quindi di puntatori, avranno generalmente un decadimento prestazionale, ma è anche vero che gli incrementi che interessanno e che fanno veramente la differenza le vediamo non con le GUI, ma con l'esecuzione di applicazioni che effettuano dei calcoli intensivi, e queste normalmente beneficeranno del nuovo ambiente, come appare appunto dagli esempi che ho citato.

Io non conosco il contesto delle prove che avete fatto, per cui non mi posso esprimere in merito: avete sicuramente trovato un esempio in cui non c'è differenza fra l'esecuzione di codice a 32 e a 64 bit.
Ma ti posso anche dire che, se devo effettuare una conversione dallo spazio RGB allo YUV (o YCbCr o altro) o viceversa, trovo decisamente molto comodo e molto più efficiente / veloce poter utilizzare una moltiplicazione 32x32 -> 64 bit e usare poi le istruzioni a 64 bit per manipolare queste quantità, anziché ricorrere ai long long "emulati" con istruzioni a 32 bit. Questo per fare un altro esempio.
Dipende tutto dal tipo di algoritmo che si deve implementare.

EDIT: ho appena visto l'altro messaggio che hai postato, e sono d'accordo.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys

Ultima modifica di cdimauro : 31-01-2005 alle 09:45.
cdimauro è offline   Rispondi citando il messaggio o parte di esso
 
1