gpt4 book ai didi

python速度组合函数

转载 作者:太空宇宙 更新时间:2023-11-03 15:56:53 24 4
gpt4 key购买 nike

我想了解为什么当我以不同方式组合函数时会出现速度差异。我最感兴趣的是理解为什么情况 (1) 比情况 (2) 更快。

谢谢!

import math
from time import time

def f(x):
return 2*x
def g(x):
return x*x
def h(x):
return math.sqrt(x)

time0 = time()
for x in range(1,10**7):
x_ = h(g(f(x)))
print 'h(g(f(x))): {}'.format( time() - time0)

def fgh(x):
return h(g(f(x)))
time0 = time()
for x in range(1,10**7):
x_ = fgh(x)
print 'composed: {}'.format( time() - time0)

time0 = time()
for x in range(1,10**7):
x_ = f(x)
x__ = g(x_)
x___ = h(x__)
print 'subsequent: {}'.format( time() - time0)

作为运行时,我得到:

h(g(f(x))): 2.83475399017
composed: 3.29999113083
subsequent: 3.4387819767

最佳答案

首先,案例 2 有一个额外的调用 - fgh(x) ,而在情况 1 中,您调用 h(g(f(x)))直接地。在执行多次的紧密循环内,额外的函数调用可能会增加额外的执行时间。情况 1 内联调用,因此速度更快一些。案例 3 进行了一些额外的赋值和加载变量,这解释了为什么它比较慢。

关于python速度组合函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40699031/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com