python程序太慢。该如何加快速度?

python

总的来说,这是个棘手的问题。首先,下面列出了深入了解前需要记住的事情:

  • 不同的Python实现具有不同的性能特征。本常见问题解答的重点是 CPython

  • 行为可能因操作系统而异,尤其是在谈论 I / O 或多线程时。

  • 在尝试优化任何代码 ,应始终找到程序中的热点(请参阅 profile 模块)。

  • 编写基准脚本将允许您在搜索改进时快速迭代(请参阅 timeit 模块)。

  • 强烈建议在可能引入隐藏在复杂优化中的回归之前,要有良好的代码覆盖率(通过单元测试或任何其他技术)。

话虽如此,加速Python代码有很多技巧。以下是一些可以达到可接受的性能水平的一般原则:

  • 使您的算法更快(或更改为更快的算法)可以产生比尝试在代码中使用微优化技巧更大的好处。

  • 使用正确的数据结构。参考文档 内置类型collections 模块。

  • 当标准库提供用于执行某些操作的原语时,可能(尽管不能保证)比您可能提出的任何替代方案更快。对于用C编写的原语,例如内置函数和一些扩展类型,这是真的。例如,请确保使用 list.sort() 内置方法或相关的 sorted() 函数进行排序(有关适度高级用法的示例,请参阅 排序指南 )。

  • 抽象倾向于创造间接性并迫使翻译更多地工作。如果间接级别超过完成的有用工作量,则程序将变慢。你应该避免过度抽象,特别是在微小的功能或方法的形式下(这通常也会对可读性产生不利影响)。

如果你已经达到纯 Python 允许的限制,那么有一些工具可以让你走得更远。 例如, Cython 可以将稍微修改的 Python 代码版本编译为 C 扩展,并且可以在许多不同的平台上使用。 Cython 可以利用编译(和可选的类型注释)来使代码明显快于解释运行时的速度。 如果您对 C 编程技能有信心,也可以自己 编写 C 扩展模块

参见

专门介绍 性能提示 的wiki页面。

以上是 python程序太慢。该如何加快速度? 的全部内容, 来源链接: utcz.com/z/520651.html

回到顶部