pypy3是一款Python开发人员必须用到的Python解释器,如果开发人员想要更好的进行Hack Python创建的项目,你就必须用到这款软件,虽然同类的软件有不少,不过比起CPython更加灵活,易于使用和试验,你还可以已制定具体的功能在不同的情况下实现方法,让应用程序更容易实施。
在pypy3的新版本中,大量的性能被改进,用户能够用更加少的系统资源使用软件进行开发,而且现在stackless功能默认启用,用户再也不需要手动去开启了,而且JSON编码器替换成一个新的有纯Python编写,某些情况下比起CPython的C扩展快两倍,比起前的PyPy 1.6快20倍,如果你想要更加有效率的进行Python开发,那么这款pypy3绝对是你计算机中必备的工具。
软件特色
速度:由于它的即时编译器,Python程序通常在PyPy上运行得更快。
“如果你希望你的代码运行得更快,你应该可以使用PyPy。” - Guido van Rossum
内存使用:内存匮乏的Python程序(几百MB或更多)可能会比在CPython中占用更少的空间。
兼容性:PyPy与现有的python代码高度兼容。 它支持cffi,并且可以运行流行的python库,如twisted和django。
Stackless:默认情况下,PyPy支持无堆栈模式,为大量并发提供微线程。
实现原理
PyPy的第一部分:用Python实现的Python
其实这么说并不准确,准确得说应该是用rPython实现的Python,rPython是Python的一个子集,虽然rPython不是完整的Python,但用rPython写的这个Python实现却是可以解释完整的Python语言。
PyPy的第二部分:编译器
这是一个编译rPython的编译器,或者说这个编译器有一个rPython的前端,目前也只有这么一个前端,不过它的后端却是不少,也就是说这个编译器支持许多的目标语言,比较重要的有:C,CIL,Javascript ...
更新日志
大量的性能改进。
Bug修复,以及与CPython的兼容性修复。
现在stackless功能默认启用。
NumPy effort现在更名为numpypy,使用时可以简单写作:import numpypy as numpy。
JSON编码器已被替换为一个新的,是用纯Python编写的,某些情况下比CPython的C扩展快2倍,比PyPy 1.6中的快20倍左右。
一些RPython模块的内存占用已得到大幅改善。
另外,有一些功能正在开发,将包含在1.8版本中,这些功能包括:
特殊列表实现。可以大幅改善一些应用程序的性能/内存影响。
NumPy effort即将支持多维数组。
两个新的JIT编译器后端,尤其针对PowerPC和ARM处理器。