使用时间模块测量已用时间

使用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 文档

Interesting Posts