Domanda

Qualcuno conosce un buon strumento che mi avrebbe dato x86 conteggio di esecuzione delle istruzioni. Ho guardato gcov, ma vorrei guardare altra opzione che mi potrebbe aiutare. Il mio obiettivo finale è quello di essere in grado di chiamare questa funzione e dargli la funzione Sono interessato a emulare / profilatura e sarebbe restituire il numero di volte ogni linea di assemblaggio eseguito. Eventuali suggerimenti sono i benvenuti :) Grazie

È stato utile?

Soluzione

Se siete alla ricerca di istruzioni che rappresentano una percentuale significativa di tempo, e se è possibile eseguirlo in un debugger, quindi questo funzionerà . Si isolerà punti di codice che sono responsabili di tempo significativo, se sono istruzioni terminali o istruzioni funzione di chiamata, anche se provocano I / O.

Gli strumenti che faranno questo sono Zoom , se siete su Linux, oppure LTProf se su Windows.

D'altra parte, se siete alla ricerca di misurazione del tempo e il conteggio di esecuzione, è necessario qualcos'altro, come un emulatore (Valgrind?).

Altri suggerimenti

Qemu potrebbe aiutare, ma qualsiasi modo questo tipo di profilazione rovinerà la cache del profilo / gasdotto e non sarà utile.

analista codice di AMD dovrebbe essere in grado di farlo usando il campionamento basato istruzioni, non mi ricordo se dà le percentuali o numeri piatte per i conteggi di esecuzione però.

Si potrebbe schiaffeggiare insieme un programma come quello abbastanza facilmente su Linux, basta usare ptrace in combinazione con objdump e un po 'di logica, dovrebbe essere facile da scrivere in asm.

Ho avuto l'idea da Come codice debugger .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top