Zeit für Schleifendurchlauf
-
ich wollte mal fragen ob es einen Möglichkeit gibt, beim Borland C++ BuilderX, die Zeit anzuschauen, die ein Programm braucht, die z. B. eine Schleife braucht, bis sie durchgelaufen ist.
gruß Gucky
-
Vorher und Nachher einen Timestamp holen und die Differenz bilden reicht nicht?
-
Die Timestamps eines Systems können unter umständen zu ungenau sein um die Laufzeit von kleineren Schleifen zu ermitteln.
Man kann diese jedoch in eine weitere Schleife einpacken die z.B. 100 mal durchgeführt wird.
Die ermittelte Zeit wird durch 100 geteilt und du erhälts ein relativ genaue Laufzeit der Schleife.Das funktioniert natürlich nicht mit allen Schleifen und geht auch nur während des Testens/Entwickelns der Software.
-
Gucky schrieb:
ich wollte mal fragen ob es einen Möglichkeit gibt, beim Borland C++ BuilderX, die Zeit anzuschauen, die ein Programm braucht, die z. B. eine Schleife braucht, bis sie durchgelaufen ist.
gruß Gucky
ja und nein.
Du kannst dir wie vorgeschlagen Timestamps anschauen (Osbios Tipps dabei beachten!), wenn du wirklich daran interessiert bist. Viel, viel besser ists vermutlich, dir einen Profiler zu besorgen (vllt. hat der Builder eh schon einen dabei). Der sagt dir dann, wie oft die Schleife durchlaufen wurde, wieviel Zeit sie verbraucht hat und vor allen Dingen WAS in der Schleife so viel Zeit verbraucht hat und OB DIE SCHLEIFE UEBERHAUPT DER FLASCHENHALS IST.... (vorausgesetzt du hast auch ordentlich programmiert und nicht nur eine 1 KLOC lange Schleife in main()).
Ach ja: bedenk ausserdem dass der Compiler, vor allem bei hoeheren Optimierungseinstellungen, deinen Code ziemlich herumwurstelt. Womoeglich gibts die Schleife in der Form im Binary gar nicht mehr...
-
ok danke
ich probiers gleich mal aus