Python编译器PyPy发布新版本,强烈建议更新!
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。