WEB开发网
开发学院软件开发Python 用Psyco让Python运行得像C一样快 阅读

用Psyco让Python运行得像C一样快

 2007-11-12 12:52:53 来源:WEB开发网   
核心提示:Python 的设计在很多方面都类似于 Java 的设计,两者都利用了解释专门的伪编译字节码的虚拟机,用Psyco让Python运行得像C一样快,JVM 比 Python 更高级的一个方面在于优化了字节码的执行,Psyco,那么将这些步骤加速 10 倍远不及寻找 O(n) 替代品来得有用,即使在考虑用汇编语言重写算法这

Python 的设计在很多方面都类似于 Java 的设计。两者都利用了解释专门的伪编译字节码的虚拟机。JVM 比 Python 更高级的一个方面在于优化了字节码的执行。Psyco,一种 Python 专用编译器,帮助平衡了这一竞争。Psyco 现在是个外部模块,但是在将来的某一天它可能会包括到 Python 本身中去。只需极少量的额外编程,通常就可以使用 Psyco 将 Python 代码的速度提高好几个数量级。在本文中,David Mertz 研究了 Psyco 是什么,并在一些应用程序中对它进行了测试。

Python 对于您想让它做的事来说通常够快了。编程新手对于类似 Python 这样的解释型/字节编译型语言,将 90% 的关注点集中在执行速度方面,是相当幼稚的。在最新的硬件上,大多数非优化的 Python 程序运行的速度和所需要达到的速度一样快,而且,花费额外的编程工作以使应用程序运行得更快实在没什么意义。

因此,在本文,我只对其它的百分之十感兴趣。有时,Python 程序(或用其它语言编写的程序)也会运行得极其缓慢。不同的目的所需要的改进差异很大;提高只运行几毫秒的任务的性能极少能引人注目,但是加快那些需运行几分钟、几小时、几天甚至几星期的任务的速度通常是很值得的。而且,应该注意到并不是所有任务运行缓慢的原因都是由 CPU 引起的。例如,如果完成一个数据库查询要花费几个小时,那么处理结果数据集要花费一分钟还是两分钟就没什么差别了。本文同样不讨论与 I/O 有关的问题。

有很多方法可以加速 Python 程序。每个程序员都应当想到的第一种技术就是改进所使用的算法和数据结构。对低效算法步骤进行细微的优化是徒劳无益的事情。例如,如果当前技术的复杂性等级是 O(n**2),那么将这些步骤加速 10 倍远不及寻找 O(n) 替代品来得有用。即使在考虑用汇编语言重写算法这种极端情况时,这种思想也都适用:Python 中正确的算法通常会比手工调优的汇编语言中的错误算法快得多。

1 2 3 4 5 6  下一页

Tags:Psyco Python 运行

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接