Ausführungszeit eines Codeabschnittes
-
Hallo!
Ich möchte die Zeit, die der Rechner braucht, um 2 verschiedene sequenzielle Codeabschnitte abzuarbeiten, vergleichen. Die Abschnitte errechnen im Prinzip dasselbe. Die Rechnung ist nur anders umgesetzt.Ich möchte also die theoretische Ausführungsdauer haben. Ich möchte aber nicht wissen, wie viel Realzeit vergangen ist, weil der Rechner ja auch andere Prozesse bearbeitet.
Gibts da irgendwelche Möglichkeiten unter C/C++ ?
Danke! Christoph
-
vieleicht wäre
clock()was für dein Problem? Schau mal in der Cpp-Referenz nach.
-
Falls unter Windows und die Messung exakter sein soll, schau mal in der MSDN unter QueryPerformanceCounter und QueryPerformanceFrequency.
Ich hab allerdings keine Ahnung, wie man die Messung auf einen bestimmten Prozess beschränken soll...
-
prozessausführungszeiten bekommst du unter linux mit
times()unter windows, keine ahnung

-
Also clock() klang nicht schlecht. Funktioniert aber leider nicht. Wenn ich das Programm mit VS debugge variieren die Ausführungszeiten, ohne das etwas am Programm verändert wurde. Aber trotzdem danke. Wenn mir das mit QueryPerformanceCounter mal ansehen.
Christoph
Edit: @sothis_: Ist leider unter Windows
-
Hmm wenn man sich die Berschreibung von "Clock()" auf
http://www.willemer.de/informatik/cpp/timelib.htm
durchliest, sollte man meinen, dass es so geht. Oder das Debuggen ändert was daran, aber eigentlich sollten ja nur die Ticks der kompilierten EXE auschlaggebend sein...
-
Ja - das die Werte trotzdem schwanken ist mir au scho aufgefallen - kann ich mir zwar auch nicht erklären, aber ich nehms trotzdem immer, wenn ich was genau gucken will...
bb
-
Das Problem ist, dass ich teile des Programms in Assembler schreibe. Ich möchte nachvollziehen, wie lange GENAU das Programm braucht. Ich könnte natürlich die Befehle zählen, aber dafür ist mir das Programm zu lang
