根据我在博客上看到和阅读的内容,PyPy 是一个非常雄心勃勃的项目。与它的兄弟姐妹(CPython、Jython 和 IronPython)相比,它将带来哪些优势?是速度、跨平台兼容性(包括移动平台)、在没有 GIL 的情况下使用 c 扩展的能力,还是这更多的是关于可以做什么的技术练习?
问问题
3202 次
4 回答
38
PyPy 实际上是两个项目:
- 解释器编译器工具链,允许您在 RPython(Python 的静态子集)中编写解释器,并为 JVM、.NET(等)独立编译跨平台解释器
- 在 RPython 中实现 Python
这两个项目允许做很多事情。
- 在 Python 中维护 Python 比在 C 中维护它容易得多
- 从单个代码库中,您可以生成在 JVM、.NET 和独立环境上运行的 Python 解释器——而不是有多个稍微不兼容的实现
- 编译器工具链的一部分包括一个实验性的 JIT 生成器(现在是它的第五个化身并且开始工作得很好) -目标是让 JITed PyPy 运行得比CPython 快得多
- 尝试基本的语言特性要容易得多——比如删除 GIL、更好的垃圾收集、集成无堆栈等等
所以 PyPy 有很多令人兴奋的理由,它终于开始兑现它的所有承诺。
于 2009-03-06T16:46:37.197 回答
4
最重要的特性当然是 JIT 编译器。在 CPython 中,文件被编译为字节码 ( .pyc
) 或优化的字节码 ( .pyo
),然后进行解释。使用 PyPy,它们将被编译为本机代码。PyPy 还包括Stackless Python补丁,包括它令人印象深刻的特性(tasklet 序列化、轻线程等)
于 2009-03-06T16:29:52.930 回答
0
如果 Python 获得真正的JIT,我认为它将与任何其他实现一样快。
优点是实现新功能要容易得多。今天可以通过观察图书馆看到这一点。模块通常先用 Python 编写,然后再翻译成 C。
于 2009-03-06T16:30:06.783 回答
0
跨平台兼容性
是的
于 2009-03-06T16:33:03.593 回答