Laufzeit eines Programms über py-script bestimmen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Mati
User
Beiträge: 68
Registriert: Dienstag 6. Juni 2006, 16:54

Hallo,

ich habe 2 C++ Programme und würde gerne mittels eine python-skripts die exakte laufzeit für einen bestimmen input messen um zu sagen welches programm von den beiden schneller ist.

Ich programmiere unter Linux - da gibt es den time befehl. Gibt es etwas ähnliches in python auch?

Meine Grundsätzliche Idee wäre:
in einer schleife ca. 100 mal jedes programm laufen zu lassen, die zeiten zu speichern, 16% (Normalverteilung) der besten und schlechtesten Zeiten zu löschen und anschließend den wert zu mitteln. Man könnte auch auf 1000 gehen.

ist mein vorgehen falsch oder gar unmöglich? Ich meine zeitmessungen sind ja immer abhängig von den darunterliegenden Unterbrechungen des OS bzw. den prozessen etc....

Danke für Mithilfe
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Hallo!
Was sind das denn für Programme? Willst du sie nur mit Python starten, oder irgendwie einbauen?
Kannst dir ja mal timeit angucken. Vlt. ne Funktion bauen, die einfach das entsprechende c++ Programm laufen lässt (mit os.system oder so, damit python erst nach beendigung des Programms weiterläuft).
Wenn du nur den Vergleich brauchst, und nicht die absoluten Zeiten, kannst du dir die Schleife sparen (s. doc/link).

Hoffe, das hilft dir etwas weiter.
Mati
User
Beiträge: 68
Registriert: Dienstag 6. Juni 2006, 16:54

naja - c++ programme - eins habe ich selbst geschrieben (ca. 3000 Zeilen) und eins ist fremt (5000 Zeilen).

also unter linux kann mittels time befehl die zeit aus der konsole bekommen.
also: $time ./my_prog
jetzt wollte ich einfach ein skript schreiben und dort sowas wie:
exec my_prog
ausführen 100mal und die Zeit messen und als output mir die gemittelte zeit meines programms ausgeben lassen.
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Probiers doch einfach mal mit os.system. Kannst du deine Zeitmessung damit nicht einfach inner schleife aufrufen? Also nur die Wiederholung per Python regeln?
Antworten