Psyco,一种 Python 专用编译器,帮助平衡了这一竞争。Psyco 现在是个外部模块,但是在将来的某一天它可能会包括到 Python 本身中去。只需极少量的额外编程,通常就可以使用 Psyco 将 Python 代码的速度提高好几个数量级。
Python 的设计在很多方面都类似于 Java 的设计。两者都利用了解释专门的伪编译字节码的虚拟机。JVM 比 Python 更高级的一个方面在于优化了字节码的执行。
PS:
Psyco 可以在 Python解释器 编译代码时自动优化,将其使用C实现,并针对循环操作进行一些特殊的优化。经过这些优化,程序的性能将会得到提升,在跨平台环境下尤为明显。
性能提升
对于密集计算型程序,Psyco 可以显著提升程序的执行速度。实际的提升决定于程序的具体实现,曾经有人获得了高达100倍的提升,也有的时候因为需要额外加载 Psyco 模块反倒带来了轻微的性能下降。经过调查,在典型的应用上,Psyco 平均可以提供 1.5至4 倍的性能提升。这帮助 Python 的性能达到了 Smalltalk 和 Scheme 的水平,但是仍然与 Fortran 与 C这样的编译语言,或是一些 JIT 语言如 C# 和 Java有所差距。Psyco 宣称自己是非常易用的,事实也确实如此。
最简单的 Psyco 优化只需要在程序开始处放置两行代码:
import psyco
psyco.full()
这两行指令会让 Python解释器 加载 Psyco 模块,并对接下来的脚本进行优化。对于小的程序来说,这相当的方便;但是大型工程来说,加入这些的工作量并不低,通常可以借助自动化脚本来完成。