如果我将通常调用的代码放入单独的方法或文件中,Python会更快吗?

时间:2010-11-04 19:34:56

标签: python performance runtime

我以为我曾经读过,如果将通常被调用的代码放入方法或单独的文件中,Python将编译并运行得更快一些。将Python代码放在​​方法中是否优于单独的文件,反之亦然?有人可以解释为什么会这样吗?我认为它与内存分配和垃圾收集等有关。

3 个答案:

答案 0 :(得分:4)

没关系。不要围绕代码速度构建程序;围绕编码器速度构建它。如果你用Python写一些东西并且速度太慢,找到cProfile的瓶颈并加快速度。你如何加快速度?你尝试并分析它们。通常,关键循环中的函数调用开销很高。编译代码的字节需要花费很少的时间,只需要完成一次。

答案 1 :(得分:2)

没有。无论您将代码放在何处,都必须对其进行一次解析并在必要时进行编译。将代码放入方法或不同文件之间的区别可能会产生微不足道的性能差异,但您不必担心它。

关于现在你唯一需要担心构造“正确”的语言是Javascript。因为必须从网络下载到客户端的计算机。这就是为什么有这么多压缩器和混淆器的原因。像这样的东西不是用Python完成的,因为它不需要。

答案 2 :(得分:1)

两件事:

单独模块中的代码在第一个运行时编译为字节码并保存为预编译的.pyc文件,因此只要源自未被修改,就不必在下次运行时重新编译。这可能会带来较小的性能优势,但仅限于程序启动时。

此外,如果将变量放在函数内而不是文件的顶层,Python会更有效地存储变量等。但我不认为这就是你所指的,是吗?