代码之家  ›  专栏  ›  技术社区  ›  Parker

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

  •  1
  • Parker  · 技术社区  · 14 年前

    我想我读过一次,这样如果将通常被称为代码的代码放入方法或单独的文件中,Python的编译和运行速度会稍微快一点。将python代码放入方法中是否比单独的文件有优势,或者相反?有人能解释一下为什么会这样吗?我假设这与内存分配和垃圾收集或其他事情有关。

    3 回复  |  直到 13 年前
        1
  •  4
  •   nmichaels    14 年前

    没关系。不要围绕代码速度构建程序;而是围绕代码速度构建程序。如果你用python写了一些东西,但是速度太慢,那么用cprofile找到瓶颈,并加快速度。你怎么加快速度?你试着做一些事情,并对它们进行分析。一般来说,关键循环中的函数调用开销很高。字节编译代码只需要很小的时间,只需执行一次。

        2
  •  2
  •   darioo    14 年前

    不,无论您将代码放在哪里,都必须对它进行一次解析,并在必要时进行编译。将代码放在方法或不同文件中的区别可能会有一个微不足道的性能差异,但您不应该担心它。

    现在唯一需要担心结构“正确”的语言是JavaScript。因为它必须从网络下载到客户机上。这就是为什么它有这么多的压缩机和模糊器。像这样的事情不能用Python完成,因为它是不需要的。

        3
  •  1
  •   Tim Pietzcker    14 年前

    有两件事:

    单独模块中的代码在第一次运行时编译为字节码,并保存为预编译的 .pyc 文件,所以下次运行时不必重新编译它,只要源文件此后没有被修改。这可能会导致较小的性能优势,但只在程序启动时产生。

    另外,如果变量被放置在函数中而不是文件的顶层,那么python存储变量的效率会更高一些。但我不认为这就是你在这里所指的,是吗?