Python解释器PyPy 7.0.0发布,更新模块版本以及垃圾回收机制

Python解释器PyPy发布第7个主要版本,这个版本同时又包含3个版本,虽然使用相同的程序代码基础,但是内置的解释器版本不同,分别支持Python 2.7、Python 3.5以及Python 3.6 Alpha版本。

PyPy是一个与Python兼容的解释器,自诩为官方解释器CPython的替代品,因为其集成了JIT编译器,所以性能比CPython快上许多。开发团队现在发布了PyPy 7.0.0,由于支持的Python版本不同,因此分成PyPy 2.7、PyPy 3.5以及PyPy 3.6 Alpha共3个版本,不过这3个版本的程序代码库并没有太大的差异。

官方特别提醒,PyPy 3.6 Alpha是他们第一个支持Python 3.6的语法与功能的PyPy版本,目前仍在测试版阶段,同时他们也认为Windows PyPy 3.5未达可用于产品阶段的品质,在兼容性上还存在一些问题待处理,建议开发者不要将这两个版本用于开发产品上。

官方持续与下游组件供应商合作,不过在专为PyPy发布构建版本之前,官方收集了一些常见的组件并以wheels封装格式提供。另外,官方也改善了PyPy 7.0.0的垃圾回收效率,并在今年1月发布可手动控制垃圾回收机制时,并入这个版本中。

PyPy的垃圾回收策略会定期扫描堆(Heap),释放无法访问对象的内存空间,这样的方式虽然比起CPython的参照策略效率好很多,但是应用程序却会产生明显的停顿。因此PyPy加入了gc.disable()与gc.collect_step()两个函数,可以让开发者手动控制内存释放的时机。而这项功能原本是与特定研究机构合作的成果,现在官方将其并入PyPy 7.0.0中。

另外,官方将新版PyPy中的cffi模块版本升级到了1.2,cppyy后端也更新到了1.4,官方建议开发者用这两个模块来打包C和C++程序代码,以获得良好的JIT体验。而由于这个版本与前一版本完全兼容,而且又修复了许多错误,因此官方强烈建议开发者更新到最新版PyPy。