使用python中的time模块,可以测量经过的时间吗?如果是这样,我该怎么做呢?
我需要这样做,这样如果光标在小部件中停留了一定的时间,事件就会发生。
发布于 2010-09-02 02:22:03
start_time = time.time()
# your code
elapsed_time = time.time() - start_time您还可以编写简单的装饰器来简化对各种函数执行时间的测量:
import time
from functools import wraps
PROF_DATA = {}
def profile(fn):
@wraps(fn)
def with_profiling(*args, **kwargs):
start_time = time.time()
ret = fn(*args, **kwargs)
elapsed_time = time.time() - start_time
if fn.__name__ not in PROF_DATA:
PROF_DATA[fn.__name__] = [0, []]
PROF_DATA[fn.__name__][0] += 1
PROF_DATA[fn.__name__][1].append(elapsed_time)
return ret
return with_profiling
def print_prof_data():
for fname, data in PROF_DATA.items():
max_time = max(data[1])
avg_time = sum(data[1]) / len(data[1])
print "Function %s called %d times. " % (fname, data[0]),
print 'Execution time max: %.3f, average: %.3f' % (max_time, avg_time)
def clear_prof_data():
global PROF_DATA
PROF_DATA = {}用法:
@profile
def your_function(...):
...您可以同时分析多个功能。然后,要打印测量结果,只需调用print_prof_data():
发布于 2010-09-02 02:28:25
time.time()将会完成这项工作。
import time
start = time.time()
# run your code
end = time.time()
elapsed = end - start你可能想看看this的问题,但我不认为它是必要的。
发布于 2017-10-03 20:04:18
对于想要更好地格式化的用户,
import time
start_time = time.time()
# your script
elapsed_time = time.time() - start_time
time.strftime("%H:%M:%S", time.gmtime(elapsed_time))将打印出来,持续2秒:
'00:00:02'7分钟一秒:
'00:07:01'请注意,gmtime的最小时间单位是秒。如果您需要微秒,请考虑以下几点:
import datetime
start = datetime.datetime.now()
# some code
end = datetime.datetime.now()
elapsed = end - start
print(elapsed)
# or
print(elapsed.seconds,":",elapsed.microseconds) strftime documentation
https://stackoverflow.com/questions/3620943
复制相似问题