代码
为什么我得到不同的结果?
from time import time
def speed_test(func):
def wrapper(*args, **kwargs):
start = time()
func(*args, **kwargs)
end = time() - start
print(f"Execution time is: {end:.17f}s # Decorator")
return wrapper
@speed_test
def sorting(L):
L.sort() # For example
def sorting_1(L1):
L1.sort()
T = [10, 5, 3, 1, 0]
L = T.copy()
sorting(T)
a = time()
sorting_1(L)
b = time() - a
print(f"Execution time is: {b:.17f}s # Main")
预期输出
Execution time is: 0.00000977516174316s # Decorator
Execution time is: 0.00000977516174316s # Main
我的输出
Execution time is: 0.00000977516174316s # Decorator
Execution time is: 0.00000572204589844s # Main
为什么这两个结果是不同的?编辑:我是说...
1条答案
按热度按时间m528fe3b1#
我在这里要说两件事:
time.perf_counter
对于这类事情更有效1.[猜测]在Python中,修饰函数“替换”了调用堆栈中的原始函数,因此它们可能会因为这个原因而变慢。