プログラムの実行時間を計ってから時間を表示する必要があるコードを作成しています。これは基本的にバックグラウンドで実行されるタイマーであり、コードが実行されている時間を表示するために呼び出すことができます。どうすればいいですか?
質問する
23601 次
3 に答える
17
開始時刻を記録し、後でその開始時刻と現在時刻の差を計算します。
プラットフォームの違いにより、精度のためにtimeit.default_timer
callableを使用する必要があります。
from timeit import default_timer
start = default_timer()
# do stuff
duration = default_timer() - start
これにより、浮動小数点値として秒単位のウォールクロック時間が得られます。
デモ:
>>> from timeit import default_timer
>>> start = default_timer()
>>> # Martijn reads another post somewhere
...
>>> print default_timer() - start
19.1996181011
于 2013-06-20T10:23:46.240 に答える
4
これはPythonで簡単です
import time
start_time=time.time()
#do something
end_time=time.time()-start_time
結果end_time
は秒単位になります
于 2013-06-20T10:28:27.377 に答える
0
私はこれをしました、これはあなたを助けるかもしれません
from timeit import default_timer
timerPool = {}
TIMER_RUNNING = 1
TIMER_STOPPED = 0
TIMER_IDLE = 2
"""
Initilialize the timer like below if any new timer to be added
"""
"""
required initialization for "eightSecTimer_Id" timer
"""
timerPool['eightSecTimer_Id'] = {}
timerPool['eightSecTimer_Id']['state'] = TIMER_IDLE
timerPool['eightSecTimer_Id']['start'] = 0
timerPool['eightSecTimer_Id']['duration'] = 0
timerPool['eightSecTimer_Id']['time'] = 0
"""
required initialization for "fiveSecTimer_Id" timer
"""
timerPool['fiveSecTimer_Id'] = {}
timerPool['fiveSecTimer_Id']['state'] = TIMER_IDLE
timerPool['fiveSecTimer_Id']['start'] = 0
timerPool['fiveSecTimer_Id']['duration'] = 0
timerPool['fiveSecTimer_Id']['time'] = 0
"""
Interface to start the timer
"""
def StartTimer(Id,time):
timerPool[Id]['time'] = time
timerPool[Id]
if (timerPool[Id]['state'] == TIMER_IDLE) or (timerPool[Id]['state'] == TIMER_STOPPED):
timerPool[Id]['start'] = default_timer()
timerPool[Id]['state'] = TIMER_RUNNING
return timerPool[Id]['state']
"""
Interface to get the timer status.
Return "TIMER_STOPPED" when timer completed
Return "TIMER_IDLE" after timer completed on consecutive call of this function
"""
def GetTimerState(Id):
time = timerPool[Id]['time']
if timerPool[Id]['state'] == TIMER_RUNNING:
timerPool[Id]['duration'] = default_timer() - timerPool[Id]['start']
else:
None
if timerPool[Id]['state'] == TIMER_STOPPED:
timerPool[Id]['state'] = TIMER_IDLE
if timerPool[Id]['duration'] >= time:
timerPool[Id]['state'] = TIMER_STOPPED
timerPool[Id]['duration'] = 0
return timerPool[Id]['state']
"""
Below is how to use.
"""
StartTimer('fiveSecTimer_Id',5)
StartTimer('eightSecTimer_Id',8)
while True:
if GetTimerState('fiveSecTimer_Id') == TIMER_STOPPED:
print "5 sec Timer Stopped"
if GetTimerState('eightSecTimer_Id') == TIMER_STOPPED:
print "8 sec Timer Stopped"
sleep (.5)
于 2014-03-29T07:15:29.750 に答える