Gibt es eine einfache Möglichkeit, schnell die Anzahl der ausgeführten Anweisungen (x86 Befehle - welche und wieviele) zu zählen, während ein C-Programm ausgeführt wird?Schnelle Möglichkeit, die Anzahl der in einem C-Programm ausgeführten Befehle zu zählen
Ich benutze gcc version 4.7.1 (GCC)
auf einer x86_64 GNU/Linux
Maschine.
Ich stimme mit Doness 'Antwort überein, dass normalerweise Leute die Ausführungszeit pro Funktion profilieren möchten. Wenn Sie jedoch genaue Zählungen für jeden ausgeführten Befehl erhalten möchten, müssen Sie Ihren Code in einem Simulator für Anweisungsgruppen ausführen, z. B. http://www.simplescalar.com/ – TJD
Können Sie näher erläutern, was Sie versuchen? erreichen? Auf x86 hängt die Leistung der Befehlsausführung weit mehr vom Kontext als von der tatsächlichen Anweisung ab - praktisch können alle Anweisungen beispielsweise geladen oder gespeichert werden. Und reine Register-zu-Register-Befehle hängen auf komplexen Wegen vom Pipelinestatus moderner CPUs ab. Das klingt für mich nicht nach nützlichen Informationen. –
Warum fragst du? Normalerweise bedeutet * Profiling * etwas anderes ... zB kompiliere mit 'gcc -pg -Wall -O' und benutze' gprof' oder vielleicht 'oprofile' !! –