Dove posso trovare il tempo di esecuzione delle istruzioni x86? Come scoprire quali istruzioni sono più veloci o più piccole?
link - desideri il manuale di ottimizzazione per la CPU che ti interessa; AMD pubblica un manuale di ottimizzazione per le loro CPU.
Tieni presente che non esiste un "orario" per ciascuna istruzione, in questi giorni. Si dispone di stalli fuori servizio, memoria e registro, e parallelismo a livello di istruzioni da tenere in considerazione.
Diverse istruzioni hanno ancora latenze e throughput diversi, e il numero di Uop o m-op decodificati, e le porte di esecuzione su cui gli UOP possono essere eseguiti. La fonte migliore per questi numeri sono le tabelle di istruzioni di Agner Fog e la sua microarchitettura in pdf con i dettagli di come questi numeri contano. Consulta anche la sezione sull'ottimizzazione in wiki dei tag x86 di Stack Overflow .
Daniel ha già riassunto la risposta, +1 a questo. La linea di fondo è che sulle moderne CPU con oltre 2 miliardi di transistor, fanno cose così pazzesche che non è possibile guardare le istruzioni di montaggio e aspettarsi di indovinare i tempi. L'unica cosa che puoi fare è scrivere codice e misurare le sue prestazioni.
In questa nota, se sei curioso di saperne di più, dai un'occhiata al link . Il tizio che ha scritto quell'articolo è un dottorato di ricerca e in realtà ha molte cose interessanti da dire su molte cose. Ho passato un po 'di tempo a esaminare tutti i suoi articoli. Quello che sto collegando parla di misurazione delle prestazioni di gestione delle eccezioni e va fino al livello di istruzioni di montaggio.
Leggi altre domande sui tag x86