我想爲我的模塊做一個秒錶功能。這是記錄我的模塊被調用的時間,以便導入到完全導入的時間。我試圖記錄這個的原因是因爲我的模塊需要永久加載(因爲它需要編譯來自外部源的數據並將這些數據合併到列表中)。永遠是大約90秒。我查了類似的問題,但它只是關於創建倒計時或定時器。只要他們使用python的內置模塊,我可以選擇很多選項。如果已經有這樣的東西,如果你能告訴我,那將是很棒的。提前致謝!不使用Tk創建一個秒錶(不是倒計時或計時器)python
如果您需要更多信息,請留下評論,我會盡快與您聯繫。 :)
編輯:
考慮到MeetTitan的答案,我做了這個測試功能,嘗試了這一點:
def f():
import time
starttime = time.time()
import tms # This is my module that takes forever to load
print("Time Taken {}".format(int(time.clock() - starttime)))
>>> f()
Loading module. This may take up to 60 seconds.
Time taken -1419389848 # What does this mean?
下面是它在Python文檔說:
時間.clock()
在Unix上,將當前處理器時間返回爲以秒爲單位的浮點數。精確性,實際上「處理器時間」含義的定義取決於具有相同名稱的C函數的精確性,但無論如何,這是用於基準測試Python或時序算法的函數。
了time.time()
返回從epoch作爲浮點數以秒的時間。請注意,即使時間總是以浮點數形式返回,但並非所有系統的時間精度都比1秒高。雖然此函數通常返回非遞減值,但如果系統時鐘已在兩次調用之間回退,則它可以返回比先前調用更低的值。
輸出數字應該是負數?它真正的時間是什麼?對不起,如果我問的問題太多了......
編輯:
我知道了。
def f():
import time
start time = time.time()
import tms
print("Time taken {}".format(int(time.clock() - starttime)))
現在,這是我的最後一個問題。我怎麼了我現有的代碼中集成這樣,當我在此類型:
>>> import tms
Loading module. This may take up to 60 seconds. # after 30 seconds...
Time taken 31.49 seconds
這是我的代碼開頭:
import os, sys, time
# Does the code go somewhere here? How would I implement it?
print("Loading module. This may take up to 60 seconds.
tmlist = []
alltmlist = []
gen1tmlist = []
gen2tmlist = []
我做了,滿懷希望後續問題我的「想法」越來越有效。點擊here。
'time.clock()'已被棄用,據我所知。你還混合了'time.clock()'和'time.time()',它們不會輸出任何合乎邏輯的東西。如果負值持續存在,絕對值是否正確?如果這樣使用它。 – MeetTitan
看看我的編輯,我有一個錯字。 :-(重新複製粘貼,你會很好:-)。即使'time.clock()'已被棄用,我喜歡它。您可以選擇使用更喜歡的任何一種,或者在您的系統上提供最佳分辨率。但是請記住,如果您執行'startTime = time.time()',您必須執行'time.time() - startTime',反之亦然。 – MeetTitan
通常不是一個好主意,將所有處理放在頂層,即在進口時運行。但是,它在導入後由腳本調用的函數中。然後,您可以輕鬆更改,測試和檢查發生了什麼。 – Keith