Seite 1 von 1

Die Laufzeit eines Programmes bestimmen?

Verfasst: Dienstag 22. April 2008, 22:04
von Karl
Hallo.
Ich will nur mal so ein bisschen rumspielen, wie die Funktionen, die ich schreibe, am schnellsten laufen.
Dazu muss ich eben nur wissen, wie ich rauskriegen kann, wie viel Zeit das Skript benötigt hat, bis es fertig ist.
Also die Frage ist ziemlich simpel: Wie geht das? ;)
Btw: Ich hab schon gesucht aber unter dem Suchbegriff "Laufzeit" und ähnlichen Abwandlungen kann man sich ja vorstellen, was man findet.

Verfasst: Dienstag 22. April 2008, 22:09
von Leonidas
Das Unix-Programm ``time`` bietet sich an, zum Testen kleinerer Funktionen ist das Modul ``timeit`` da.

Verfasst: Dienstag 22. April 2008, 22:14
von Karl
Leonidas hat geschrieben:Das Unix-Programm ``time`` bietet sich an, zum Testen kleinerer Funktionen ist das Modul ``timeit`` da.
Thx, ich schau mir mal die help() von ``timeit`` an;)
Mit ``time`` meinst du wohl einfach timestamps?

Verfasst: Dienstag 22. April 2008, 22:24
von Leonidas
Karl hat geschrieben:Mit ``time`` meinst du wohl einfach timestamps?
Nein, mit ``time`` meine ich das Unix-Programm:

Code: Alles auswählen

$ time uptime
 23:23:50 up  1:00,  3 users,  load average: 0.77, 0.47, 0.39

real	0m0.034s
user	0m0.001s
sys	0m0.004s

Verfasst: Dienstag 22. April 2008, 22:27
von Karl
Setzt aber vorraus, dass ich Linux o.Ä hab? Beziehungsweise kriegt man sowas bestimmt auch auf Windows zum laufen aber ... Jedenfalls hab ich Windows ;)

Verfasst: Mittwoch 23. April 2008, 06:37
von Hyperion
Naja, der klassische Indikator für Algorithmen sind ja die O-Klassen. Ich denke dafür gibt es vermutlich keinen Code-Analysator für Python ;-)

Erst beim Feintuning können einem da Zeitmessungen helfen denke ich - wichtig ist davor aber ein guter Algorithmus!

@Karl: Ich könnte mir vorstellen, dass time auch unter Cygwin läuft!

Verfasst: Mittwoch 23. April 2008, 09:46
von BlackJack
Und beim Zeitmessen immer darauf achten, was man misst. Sehr oft sind die Ergebnisse "falsch" bzw. werden nicht richtig interpretiert.

Verfasst: Mittwoch 23. April 2008, 09:52
von Rebecca
[mod]profile[/mod] ist da auch sehr nuetzlich.

Verfasst: Mittwoch 23. April 2008, 18:22
von Karl
Okay, danke für die Antworten erstmal ;)
Ich werd mir dann mal die entsprechenden Module genauer anschauen.
Ich hab's jetzt der einfachheit Halber mal mit einem Timestamp gemacht

Code: Alles auswählen

x = time.time()
#...
print time.time() - x
Ich hab eigentlich noch nicht vor, irgendetwas feinzutunen ich wollt einfach nur mal aus Interesse testeb, wie sich was auf die Laufzeit auswirkt.