我刚刚重读了《Learning Python 》第 3 版(2007 年末)中关于执行模型的部分,感觉还很初步。因此,我查看了第 4 版(2009 年末)中的同一部分,对它完全没有变化感到非常失望。
在 CPython 之外执行 Python 的状态如何?感觉 Jython 和 IronPython 仍然是小众项目;是否出现了其他类似的项目?Psyco 固化得足够好,可以放心使用了吗?使用 ShedSkin 的人多吗?是否有关于 PyPy 通常何时执行更快的信息?
Psyco 的开发人员 Armin Rigo 现在与许多其他出色的开发人员一起使用 PyPy。PyPy 的开发非常活跃,并且在未来计划了很多令人兴奋的东西。使用 JIT 编译的 PyPy 几乎总是比 CPython 快,而且通常快很多。他们有一系列基准来跟踪他们的进度。它正在迅速成为一种非常流行的实现方式。关于 PyPy 的注意事项:
非常好的 Python 实现,目前实现 Python 2.7.1,因此您可以使用 3.x 之外可用的最新最好的语言功能。
JIT 允许一些真正惊人的加速,并且 PyPy 的 ctypes 支持甚至比 CPython 下的 ctypes 更快。
翻译工具链非常灵活。您可以针对不同的后端,使用无堆栈支持构建,交换垃圾收集器,使用 JIT 构建等。
对 ctypes 的相当完整的支持和对 C API 的部分支持(对两者的支持正在迅速改进)。
您实际上可以在 RPython 中编写任何您想要的内容并进行翻译,因此您可以使用类似于 ShedSkin 的翻译工具链。
ShedSkin 还在开发中,去年我用过几次。它支持 Python 的受限子集和标准库的重要部分。值得一看。除非您需要在 JVM 或 CLR 上运行,否则我不会推荐 Jython 或 IronPython。听起来您也会对Cython感兴趣。