2017-06-16 1 views
0

In meinem Code erhöht sich die Ausführungszeit meiner for-Schleife nach ungefähr 1000 Iterationen um ungefähr 1 Sekunde. Ich vermute also, dass in meiner for-Schleife etwas nicht stimmt. Ich habe einen Breakpoint nach 1000 Iterationen, aber ich muss wissen, welche Zeile mehr Zeit benötigt. Verwendung von time.time() während Zeile-für-Zeile-Debugging ist sicherlich keine gute Idee. Ich hätte timeit verwenden können, um die genaue Ausführungszeit für einen Codeblock zu erhalten, aber es ist auch keine gute Idee für meinen Fall, weil ich die Ausführungszeit jeder Zeile innerhalb einer for-Schleife abrufen muss, aber nicht die ganze Schleife. Was soll ich in diesem Fall tun? Ich benutze pycharm zum Debuggen. Gibt es eine Option in diesem Editor?Python-Debugging - Ausführungszeit für jede Zeile innerhalb einer Schleife

+0

Mögliche Duplikate von [Wie können Sie ein Python-Skript profilieren?] (Https://stackoverflow.com/questions/582336/how-can-you-profile-a-python-script) – SH7890

Antwort

1

Wenn Sie eine professionelle Version von PyCharm verwenden, können Sie den integrierten profiler verwenden.

Andernfalls siehe this answer. Alternativ können Sie line_profiler ansehen.

+0

ja, ich benutze die professionelle Version. Vielen Dank. – sovon

+0

Führen Sie einfach das Programm mit Standard-cProfiler des PyCharm, aber ich kann nicht sieht alles, was Ausfürung Zeit für eine Linie sagen. – sovon

+0

Auf der Statistik-Seite können Sie sehen, was die meiste Last verursacht hat: wie lange und wie lange es aufgerufen wurde. Ansonsten haben Sie einen Blick auf [line_profiler] (https://github.com/rkern/line_profiler) oder [memory_profiler] (https://pypi.python.org/pypi/memory_profiler). – grundic

Verwandte Themen