2017-06-16 31 views
0

在我的代碼中,大約1000次迭代後,for循環的執行時間增加了大約1秒。所以,我懷疑,我的循環內有什麼問題。 1000次迭代後我有斷點,但我需要知道哪一行需要更多時間。使用time.time(),而逐行調試肯定不是一個好主意。我可以使用timeit來獲得一段代碼的確切執行時間,但對我的情況來說,這也不是一個好主意,因爲我需要在for循環中獲取每行的執行時間,但不是整個循環。在這種情況下,我該怎麼辦?我正在使用pycharm進行調試。在這個編輯器中有沒有選擇?python debugging-獲得循環中每行的執行時間

+0

可能重複的[你怎麼能剖析一個python腳本?](https://stackoverflow.com/questions/582336/how-can-you-profile-a-python-script) – SH7890

回答

1

如果您使用的是專業版的PyCharm,您可以使用內置的profiler。請參考this answer。 另外,你可以看看line_profiler

+0

是的,我正在使用專業版。謝謝。 – sovon

+0

只需使用pycharm的默認cProfiler運行該程序,但我無法看到任何說明行消耗時間的內容。 – sovon

+0

在統計頁面上,您可以查看造成最多負載的因素:調用的時間和時間。否則,請查看[line_profiler](https://github.com/rkern/line_profiler)或[memory_profiler](https://pypi.python.org/pypi/memory_profiler)。 – grundic