测量任务之间的响应时间

时间:2017-06-30 12:43:44

标签: python

我正在编写一个程序(在Python中),它返回一些数据。 我想知道如何衡量请求和答案之间的响应时间(用于性能分析),然后我将它存储在某个地方。

有一种更好,更有效的方法可以做到这一点,或者只是在请求之前插入time.ctime(),在答案之后插入另一个time.ctime(),然后减去它们?像:

pre_time = time.ctime()
a = x + y
print a
pos_time = time.ctime()
result_time = postime - pretime

当然这个减法不起作用,但仅供参考 谢谢!

1 个答案:

答案 0 :(得分:7)

最简单的解决方案是编写一个同样的装饰器。

import time

def compute_time(func):
     def wrapper(*args, **kwargs):
         start = time.time()
         result = func(*args, **kwargs)
         time_taken = time.time() - start

         print("Function {0}: {1} seconds".format(func.func_name, time_taken)) 
         # Or you can place a logger here too.

         return result

     return wrapper

@compute_time
def add(x, y):
    return x + y

话虽如此,如果您的用例很复杂 - 请考虑一些量身定制的解决方案,例如timeit