[zxspectrum] Re: Quel brav'uomo del dottor Kendall...
- From: Luca Bisti <lucbisti@xxxxxx>
- To: zxspectrum@xxxxxxxxxxxxx
- Date: Tue, 25 Jan 2005 11:35:06 +0100
Ciao Enrico!
Purtroppo in situazioni cosi' semplici il compilatore effettua delle
ottimizzazioni ad hoc e quindi vanifica lo scopo del test. All'inizio ci
siamo cascati pure noi, poi ci siamo subito resi conto che aggiungendo
appena qualche riga di codice le ottimizzazioni sparivano e i numeri erano
completamente diversi. A proposito, nella nostra libreria di profiling
usiamo il registro TSC del processore per misurare i tempi direttamente in
cicli di clock.
Provando il tuo esempio con il VC2003 io ottengo i seguenti valori:
SenzaThis: 1031
ConThis: 1041
La differenza e' piccolina! Andando a guardare il disassemblato, pero', si
scopre che il compilatore ha:
- fatto un parziale unroll del loop nel caso SenzaThis (ma questo lo posso
ammettere)
- compilato l'assegnamento di ConThis senza usare this, quindi come se
fosse una variabile statica, cosa resagli possibile dalla semplicita' della
situazione.
Quindi il test non fa testo ;), ci vuole qualcosa di piu' complicato...
Luca
Other related posts: