使用时间模块测量已用时间
使用python中的Time模块可以测量stream逝的时间吗? 如果是这样,我该怎么做?
我需要这样做,以便如果光标已经在一个小部件一段时间的事件发生。
start_time = time.time() # your code elapsed_time = time.time() - start_time
您也可以编写简单的装饰器来简化各种function的执行时间测量:
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(...): ...
您可以同时configuration多个function。 然后打印测量,只需调用print_prof_data():
time.time()
将完成这项工作。
import time start = time.time() # run your code end = time.time() elapsed = end - start
你可能想看看这个问题,但我不认为这是必要的。
您需要导入时间,然后使用time.time()方法来了解当前时间。
import time start_time=time.time() #taking current time as starting time #here your code elapsed_time=time.time()-start_time #again taking current time - starting time
对于需要更好格式的用户
import time start_time = time.time() # your script 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 文档