1766 Stimmen

Wie ermittle ich den Zeitpunkt der Ausführung eines Python-Programms?

Ich habe ein Kommandozeilenprogramm in Python, das eine Weile braucht, bis es fertig ist. Ich möchte die genaue Zeit wissen, die es braucht, um die Ausführung zu beenden.

Ich habe mir die timeit Modul, aber es scheint nur für kleine Codeschnipsel geeignet zu sein. Ich möchte die Zeit für das gesamte Programm messen.

9voto

B.Kocis Punkte 1804

En IPython , "timeit" ein beliebiges Skript:

def foo():
    %run bar.py
timeit foo()

1 Stimmen

Wenn Sie %%timeit (zwei Prozente), können Sie die Definition der Funktion foo speichern, wie es in diese verwandte Antwort .

8voto

Mitul Panchal Punkte 496

Das geht ganz einfach in Python. Es ist nicht nötig, es kompliziert zu machen.

import time

start = time.localtime()
end = time.localtime()
"""Total execution time in minutes$ """
print(end.tm_min - start.tm_min)
"""Total execution time in seconds$ """
print(end.tm_sec - start.tm_sec)

1 Stimmen

Nun, wenn die Ausführung mehrere Minuten dauert, kann diese Lösung nicht helfen.

8voto

Hafez Ahmad Punkte 163

Ich habe versucht, den Zeitunterschied mit den folgenden Skripten zu ermitteln.

import time

start_time = time.perf_counter()
[main code here]
print (time.perf_counter() - start_time, "seconds")

0 Stimmen

Time.perf_counter(): float - Liefert den Wert (in Sekundenbruchteilen) eines Leistungszählers, d.h. einer Uhr mit der höchsten verfügbaren Auflösung zur Messung einer kurzen Dauer. Er beinhaltet die während des Ruhezustands verstrichene Zeit und ist systemweit. Der Bezugspunkt des zurückgegebenen Wertes ist undefiniert, so dass nur die Differenz zwischen den Ergebnissen aufeinanderfolgender Aufrufe gültig ist. docs.python.org/3/Bibliothek/time.html#time.perf_counter

6voto

Utkarsh Dhawan Punkte 312

Timeit ist eine Klasse in Python, mit der die Ausführungszeit von kleinen Codeblöcken berechnet werden kann.

Default_timer ist eine Methode in dieser Klasse, die zur Messung der Wanduhrzeit und nicht der CPU-Ausführungszeit verwendet wird. Daher kann die Ausführung anderer Prozesse dies beeinträchtigen. Sie ist daher für kleine Codeblöcke nützlich.

Ein Beispiel für den Code lautet wie folgt:

from timeit import default_timer as timer

start= timer()

# Some logic

end = timer()

print("Time taken:", end-start)

6voto

Pedro Lobito Punkte 84666

Spätere Antwort, aber ich verwende die integrierte timeit :

import timeit
code_to_test = """
a = range(100000)
b = []
for i in a:
    b.append(i*2)
"""
elapsed_time = timeit.timeit(code_to_test, number=500)
print(elapsed_time)
# 10.159821493085474

  • Verpacken Sie Ihren gesamten Code, einschließlich etwaiger Importe, in code_to_test .
  • number Argument gibt an, wie oft der Code wiederholt werden soll.
  • Demo

3 Stimmen

Und was, wenn Sie einen Teil des Codes zeitlich festlegen wollen, der nicht in eine Zeichenkette eingefügt werden kann?

0 Stimmen

@daniel Sie können eine neue Frage erstellen. Wenn Sie den Link hier posten, kann ich Ihnen vielleicht helfen.

3 Stimmen

Ja, ich hasse es, Code in einer Zeichenkette auszuführen, nur um die timeit()

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X