擅长:python、mysql、java
<p>暂时不要理会别人的回答。首先你应该学会使用分析器。Python附带了一个profile/cProfile;您应该学习如何读取结果并分析真正的瓶颈所在。优化的目标有三个方面:减少每次调用所花费的时间,减少要进行的调用的数量,以及减少内存使用以减少磁盘抖动。在</p>
<p>第一个目标相对容易。分析器将向您显示最耗时的函数,您可以直接转到该函数进行优化。在</p>
<p>第二个和第三个目标更难实现,因为这意味着您需要更改算法来减少打这么多电话的需要。找出调用次数较多的函数,并设法减少调用次数。利用内置的集合,它们非常优化。在</p>
<p>如果您正在进行大量的数字和数组处理,您应该看看pandas、Numpy/Scipy、gmpy第三方模块;它们是用于处理数组/表格数据的经过良好优化的C库。在</p>
<p>你还想试试PyPy。PyPy可以JIT重新编译,并比CPython做更高级的优化,而且不需要更改python代码。尽管针对CPython的优化代码看起来与针对pypyy的优化代码有很大不同。在</p>
<p>下一个尝试是赛顿。实际上,Python的语法与Cython的描述略有不同。在</p>
<p>对于那些在非常紧的循环中不能再使用任何其他方法进行优化的代码部分,您可能需要将其重写为C扩展。Python很好地支持用C进行扩展。在PyPy中,扩展PyPy的最佳方法是使用cffi。在</p>