我正在编写一个程序(在Python中),它返回一些数据。 我想知道如何衡量请求和答案之间的响应时间(用于性能分析),然后我将它存储在某个地方。
有一种更好,更有效的方法可以做到这一点,或者只是在请求之前插入time.ctime()
,在答案之后插入另一个time.ctime()
,然后减去它们?像:
pre_time = time.ctime()
a = x + y
print a
pos_time = time.ctime()
result_time = postime - pretime
当然这个减法不起作用,但仅供参考 谢谢!
答案 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。