PyPy在CPython,Jython和IronPython上提供了什么?

Jas*_*sta 28 python interpreter pypy

从我在博客上看到和阅读的内容来看,PyPy是一个非常雄心勃勃的项目.它将为其兄弟姐妹(CPython,Jython和IronPython)带来哪些优势?它是速度,跨平台兼容性(包括移动平台),在没有GIL的情况下使用c扩展的能力,还是更多关于可以做什么的技术练习?

fuz*_*man 38

PyPy实际上是两个项目:

  • 一个解释器编译器工具链,允许您在RPython(Python的静态子集)中编写解释器,并为JVM,.NET(等)提供独立编译的跨平台解释器
  • RPython中的Python实现

这两个项目允许很多事情.

  • 在Python中维护Python要比在C中维护它容易得多
  • 从单个代码库,您可以生成在JVM,.NET和独立运行的Python解释器 - 而不是具有多个稍微不兼容的实现
  • 编译器工具链的一部分包括一个实验性JIT生成器(现在处于第五个版本并开始工作得非常好) - 目标是让JITed PyPy 比CPython 运行快得多
  • 实验基本语言功能要容易得多 - 比如删除GIL,更好的垃圾收集,集成无堆栈等等

所以PyPy真的有很多令人兴奋的原因,它终于开始辜负所有的承诺了.

  • PyPy如何改善C扩展的情况?事实上,C扩展是PyPy的(当前)主要缺点之一 - 除非专门移植,否则它们根本不起作用. (4认同)
  • 使用PyPy JIT的额外速度(特别是如果它们可以有效地应用于`ctypes`代码),首先应该在混合中显着减少C扩展. (2认同)