gpt4 book ai didi

python - 为什么将过程放入函数中会快得多?

转载 作者:太空狗 更新时间:2023-10-29 20:46:24 26 4
gpt4 key购买 nike

这是我所做的,我创建了 2 个过程,一个在函数中,一个在 python 文件本身中。 python 文件本身的运行速度几乎慢了 2 倍,即使它完全相同。为什么 ?

Bellow 是一个例子,其中有 2 个过程只是在 P 元素上循环

我有以下 python 文件:

from time import *
P=1000000 #range of the 2 loops

def loop(N):
for k in range(N):
continue

start=time()
loop(P)
stop1=time()
for k in range(P):
continue
stop2=time()
print "time with function ",stop1-start
print "time without function ",stop2-stop1

这是我得到的(我尝试了一千个样本,结果如​​下):

time with function  0.0950000286102
time without function 0.15700006485

用 xrange 而不是 range 我得到:

time with function  0.0460000038147
time without function 0.107999843597

所以它就像 0.05 秒用于构建列表

我知道这可能是一个无用的问题,但如果有人知道为什么会这么快我会很高兴知道

最佳答案

唯一显着的区别是函数中的版本只更新该函数的局部变量,而不在函数中的版本更新全局变量k.

如前所述here :

The final speedup available to us for the non-map version of the for loop is to use local variables wherever possible. If the above loop is cast as a function, append and upper become local variables. Python accesses local variables much more efficiently than global variables.

关于python - 为什么将过程放入函数中会快得多?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7028770/

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