
python如何获取执行时间差
用户关注问题
我想知道如何使用Python来计算一段代码运行所花费的时间,有没有简单的方法可以实现?
使用time模块测量代码执行时间
可以使用Python内置的time模块,调用time.time()在代码运行前后记录时间点,然后计算两者的差值即可获得执行时间差。示例代码:
import time
start = time.time()
运行的代码
end = time.time()
print(f'执行时间:{end - start}秒')
我需要比time.time()更高精度的时间,Python提供哪些工具可以用来获得更准确的时间差?
使用time.perf_counter()获得高精度时间
Python的time模块提供perf_counter()函数,它返回一个高精度的计时器值,适合测量短时间的代码执行时间。用法与time.time()类似,非常适合性能测试。
示例代码:
import time
start = time.perf_counter()
目标代码
end = time.perf_counter()
print(f'执行时间:{end - start}秒')
我想方便地测量多个函数的执行时间,有没有方法用装饰器来实现这类功能?
用装饰器实现函数执行时间统计
可以定义一个装饰器函数,内部用time模块记录函数开始和结束的时间,打印或返回执行时间。这样只要给目标函数添加装饰器,自动统计执行时间非常便捷。
示例代码:
import time
def timer(func):
def wrapper(*args, **kwargs):
start = time.perf_counter()
result = func(*args, **kwargs)
end = time.perf_counter()
print(f'{func.name}执行耗时:{end - start}秒')
return result
return wrapper
@timer
def example():
# 函数体
pass