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

有帮助吗?

解决方案

PyPy 实际上是两个项目:

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

这两个项目允许 许多 事物。

  • 在Python中维护Python比在C中维护Python容易得多
  • 从单个代码库中,您可以生成在 JVM、.NET 和独立平台上运行的 Python 解释器 - 而不是使用多个稍微不兼容的实现
  • 编译器工具链的一部分包括一个实验性 JIT 生成器(现在是第五个版本,并且开始工作得很好) - 目标 用于运行 JITed PyPy 很多 比 CPython 更快
  • 尝试基本的语言特性要容易得多——比如删除 GIL、更好的垃圾回收、集成 stackless 等等

因此,PyPy 确实有很多令人兴奋的理由,而且它终于开始兑现其所有承诺。

其他提示

最重要的功能当然是JIT编译器。在CPython中,文件被编译为字节码( .pyc )或优化的字节码( .pyo ),然后进行解释。使用PyPy,它们将被编译为本机代码。 PyPy还包括 Stackless Python 补丁,包括令人印象深刻的功能(tasklet序列化,轻量级线程等)

如果Python获得真正的 JIT ,我认为它会和任何其他实施一样快。

优点是实现新功能要容易得多。今天可以通过观察图书馆看到这一点。通常,模块首先用Python编写,然后翻译成C。

  

跨平台兼容性

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top