内容摘要:Psyco,一种 Python 专用编译器,帮助平衡了这一竞争。Psyco 现在是个外部模块,但是在将来的某一天它可能会包括到 Python 本身中去。
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 中正确的算法通常会比手工调优的汇编语言中的错误算法快得多。
责编:豆豆技术应用
- 用Psyco让Python运行得像C一样快
- Excel 2007 中隐藏或显示行和列的方法
- 轻松更改Excel 2007中的字体或字号
- 用好Excel 2007中新增的多重条件函数
- 在WPS 2007中插入漂亮的页码样式
- Office 2007 的文件格式与扩展名
- Word 2007 在文档中插入半页稿纸
- Word 2007 自选图形操作技巧三则
- Word 2007 快速将多个文档合而为一
- Coreldraw打造可爱俏皮的卡通杯子
- 用Psyco让Python运行得像C一样快
- J2EE组件开发 消息驱动的EJB
- Hibernate O/R映射三大基本定则
- 在Java程序中实现回调例程
- 怎样在JAVA文件中获取该项目的相对路径
- J2EE基础:web开发需要注意的一些地方
- java中线程概念描述
- JAVA热点--讨论AJAX和RIA走向离线
- Hibernate编写通用数据库操作代码演示
- 讲述java语言中内部类的研究
- 用Psyco让Python运行得像C一样快
- 抢“鲜”体验Python 3.0
- 在Python环境下连接Oracle数据库的具体步骤
- 使用 SQLObject 连接数据库与 Python
- Python设计模式系列之三: 创建型Factory Method模式
- Python 设计模式系列之二: 创建型 Simple Factory 模式
- Python设计模式系列之四: 创建型Abstract Factory模式
- Python Web 服务开发者,第 2 部分: Web 服务软件资源库,第 1 部分
- 在 Python 中对协议使用 PEAK
- Python Web 服务开发者 第 5 部分: Python SOAP 库