gpt4 book ai didi

python - 使用局部变量而不是全局变量在 Python 中获得的性能优势的限制?

转载 作者:太空宇宙 更新时间:2023-11-04 01:26:11 26 4
gpt4 key购买 nike

我遇到了一个问题 Python code runs faster in functions .所以我认为将代码分解成尽可能多的部分将是更快的方法。但是当对某些功能进行计时时,我发现它并不是很正确。

我不会在这里发布代码 it is currently placed for review at codereview .我仍在寻找最好的计时方式 code is also placed for review at codereview尽管有赏金,但我没有得到很多答案。

我发现性能优势不可能是无限的,必须有一个限制,即分解函数将停止提供性能优势。

那么,通过将 Python 代码分解为各种函数,性能优势停止的极限是什么?从性能的角度来看,什么时候将代码分解为函数不再有用?

最佳答案

确实,由于访问时间的原因,代码在函数中的运行速度比在全局范围内的运行速度更快。一个函数有它自己的局部作用域,它被实现为一个数组,而全局作用域实际上只是一个字典。访问数组比听写更快,这是在幕后发生的,在 C 级别。

这并不意味着将代码分解成许多函数会使它更快,它仅意味着将代码从全局移动到 a 函数内部会缩短访问时间,这可能会导致整体速度提升。

即使您只是为了使用局部作用域而不是全局作用域而将所有代码都放在一个函数中,也不能保证性能会有所提高,这只能通过实际分析代码来确定。这是因为函数调用在 Python 中具有相对较高的开销,这可能会使更快的本地访问时间带来的性能提升相形见绌。

first link 页面上有很多信息您提供的内容证实了这一点。

关于python - 使用局部变量而不是全局变量在 Python 中获得的性能优势的限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17764098/

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