Python JIT编译器的优缺点

Python JIT编译器的优缺点,python,compiler-construction,project,Python,Compiler Construction,Project,我目前知道以下pythonjit编译器:Psyco、PyPy和unladenswallow 基本上,我想询问您对这些编译器的优缺点的个人经验,以及是否还有其他值得研究的地方 提前感谢, Az克里斯蒂安·佩龙(Christian Perone)在几天前的一次测试中表现出色,他声称(有支持性的基准测试数据)PyPy现在是最快的,运行基准测试的时间为145秒,而Unladen Swallow为300秒,CPython为374秒(Psyco没有帮助,实际上PsycoV2将基准测试速度降低到434秒),5

我目前知道以下pythonjit编译器:Psyco、PyPy和unladenswallow

基本上,我想询问您对这些编译器的优缺点的个人经验,以及是否还有其他值得研究的地方

提前感谢,


Az

克里斯蒂安·佩龙(Christian Perone)在几天前的一次测试中表现出色,他声称(有支持性的基准测试数据)PyPy现在是最快的,运行基准测试的时间为145秒,而Unladen Swallow为300秒,CPython为374秒(Psyco没有帮助,实际上PsycoV2将基准测试速度降低到434秒),557给Jython——查看我刚才提供的URL了解所有详细信息


当然,您需要在广泛的基准上确认这一点,但它确实看起来可信且非常有趣。Pypy拥有最大的团队(多年来,包括欧盟研究资助的慷慨资金支持),这就是为什么Pypy现在“完全就绪”并准备好进入黄金时段的原因

您可能会研究一些其他工具来加速python

  • Cython,它需要相关方法中所有变量的类型规范,然后静态编译该方法
  • Numba,它需要LLVM,但是JIT(方法必须用参数类型修饰才能进行编译)

这是一个相当广泛的问题。你对这些项目都做过实验吗?如果不是,我建议你试试。如果是的话,你有什么具体问题吗?我们无法决定哪一个对你最合适。我很乐意,但我已经到了最后期限,我的主管也没有放弃延期。所以,如果你能推荐一个好的起点,我会非常感激。或者,即使是最简单的开始也会很好。一旦我得到更多的信息,我可能会更新。我不确定这些项目是否适合目前的生产使用。你考虑过吗?@GregHewgill:AFAIK-py2exe不进行JIT/AOT编译。它只是将vm和代码捆绑在同一个文件中,因此性能取决于底层的python实现哇,很好的更新!有趣的是,看到JIT性能比CPython有所提高,我也将开始测试:)评论中有一些负面结果。你在自己的项目上尝试过PyPy吗?你能将其与CPython性能进行比较吗?PyPy很好,我只是希望他们支持Py3K,而不是强迫你在快速Python 2.x和慢速Python 3.xjnnnn之间进行选择。当你在numba中编译时,你必须先手动配置'ast'llvm吗?我一直在尝试让它工作,但我总是在同一个点(关键错误)结束,所以我认为这与LLVM本身有关。