如何加快代码?

时间:2010-06-09 16:11:57

标签: python optimization

我想加快我的代码编译速度..我已经在互联网上搜索过,并且听说psyco是一个提高速度的工具。我搜索过但可以下载网站。

我已经在我的python中安装了任何其他库或模块,直到日期为止。 可以psyco用户,告诉我们在哪里可以下载psyco及其安装和使用程序?? 我使用windows vista和python 2.6这可以解决这个问题吗?

4 个答案:

答案 0 :(得分:10)

我建议不要依赖这些工具,无论如何,psycho正在被新的python实现替换为PyPyunladen swallow。要“免费”加速,您可以使用CythonShedskin。无论如何,在我看来,这不是加速代码的正确方法。

如果你正在寻找速度,这里有一些提示:

  1. 仿形
  2. 仿形
  3. 仿形
  4. 您应该使用cProfile模块找到瓶颈,然后继续优化。

    如果python中的优化不够,请重写Cython中的相关部分,你就可以了。

答案 1 :(得分:3)

Psyco不会加快编译速度(事实上,它会减慢编译速度)。但是,如果您的问题是Python中的编译速度,则代码存在一些严重问题。

如果您正在尝试提高运行时性能,Psyco可以使用32位操作系统和Python 2.5版。最新版本是Psyco的第一个Google结果:http://psyco.sourceforge.net/

Psyco不再是一个“有趣”的项目,因为Python 3.x已经获得了Unladen Swallow,并且大多数开发人员的注意力都分散在它和PyPy之间。

还有其他提高效果的方法,不仅限于CythonShed Skin

答案 2 :(得分:2)

因此,您似乎不想加快编译速度,但希望加快执行速度。

如果是这种情况,我的口头禅是“做得少。”保存结果并保留它们,不要一遍又一遍地重读相同的文件。一次从文件中读取大量数据并使用它。

具体来说,如果您从每个文件中读取一些数据并在执行此操作时在多个文件之间切换,那么您的性能将非常糟糕。只需在完成中读取每个文件,一次一个,然后使用它们。

答案 3 :(得分:2)

  • 使用适当的数据结构。如果你发现你做了很多事

    if element in list
    #or 
    list.index(element) 
    

    然后你可能会更好地使用集和词典。

  • 不要创建一个列表来迭代它,使用generator或itertools模块。
  • 阅读Python Performance Tips
  • 如前所述,请进行分析。