Un saluto a tutta la lista. Nel tentativo di ottimizzare un programmino al massimo grado mi sono imbattuto nell' assembler Siccome l' ultima volta che l' ho utilizzato era per il commodore 64 osservo alcune stranezze che non so spiegarmi. Il PC e' un AMD64 con una debian testing sopra. Il seguente programmino viene eseguito in 0.19 sec. Il registro rax e' inizializzato a 1 .L2: movsd a.1246+8(,%rax,8), %xmm0 mulsd %xmm0, %xmm0 movsd %xmm0, b.1245+8(,%rax,8) addq $1, %rax cmpq $9999999, %rax jne .L2
se cambio la riga "addq $1, %rax" con la riga "addq $2, %rax" Dovrei eseguire il ciclo solo la meta' delle volte rispetto al caso precedente. Il tempo di esecuzione tuttavia rimane invariato (0.19 sec). Se pero' tolgo le istruzioni movsd e mulsd cambiando "addq $1, %rax" con "addq $2, %rax" il tempo si dimezza. Inoltre se tolgo solo mulsd (ossia la moltiplicazione) il tempo rimane di circa (0.19sec). Qualcuno sa indicarmi la causa oppure dove potrei reperire informazioni al riguardo? Dalle ricerche fatte con google non sono riuscito a trovare il numero di cicli di clock per ogni istruzione. Ciao e grazie -- Stefano Simonucci GNU/Linux User: #81790 http://counter.li.org -- Per REVOCARE l'iscrizione alla lista, inviare un email a [EMAIL PROTECTED] con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a [EMAIL PROTECTED] To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]