我正在尝试优化一些代码,所以我想我会仔细研究我的瓶颈所在。我有四个相互包装的函数,例如:
return f1(f2(f3(f4())))
所以我单独测试了每一个,也测试了一个整体。当单独时,我基本上预先计算了前一个函数。但是,我认为它们会加起来总时间。但他们没有,当我把它们结合起来时,它显着增长。所以我决定在更小的范围内看它。我写这个来测试
def f1():
return 2
def f2(num):
return num*num
def test():
for i in range(1000000):
f1()
def test2():
for i in range(1000000):
f2(2)
def test3():
for i in range(1000000):
f2(f1())
我得到了0.085秒的测试,0.125秒的test2和0.171秒的test3。这在两个方面让我感到困惑。1)为什么不是 test3 .21 秒,以及 2)为什么它更短,而不是我的问题变得更长?