Pyston是Dropbox发起的一个开源项目,目标是使用LLVM和现代JIT技术开发一款高性能的Python实现。4月份InfoQ中文站曾经报道过。在经历了5个月的开发之后,Pyston 0.2发布了。与最初的0.1版本相比,该版本包含了大量改进。尽管仍然有很多工作要做,但是语言兼容性已经有很大改观,而且很多标准库、某些标准扩展模块无需修改即可运行。不过Pyston离真正可用还有很长的路要走。 该版本支持的Python特性包括:
具体而言,如仍在继续开发的原生C语言支持,目前能够原生提供CPython API的一个子集,重新编译一次就能运行现有的扩展。在其他技术中,开发团队禁用了所有的引用计数操作,转而使用保守的垃圾收集来处理内存管理。 该版本也使用GIL管理线程相关的代码。不过提供了实验性的配置选项,支持使用读写锁的一个变种。该选项去掉了GIL,支持多个线程使用多个处理器核,但是受限于C API的语义,并行性还有待继续挖掘。 根据原来的设想,0.1版本的目标是验证整个JIT架构,0.2改进语言兼容性,0.3改进性能。0.1版本已经说明,可以使用LLVM生成高性能代码,但是基准测试表明,性能还是被非常简单的垃圾收集器、较为初级的SSA变换实现拖了后腿。未来数月,开发团队将集中解决这些问题,并引入一个新的分层框架,以支持更先进的类型推导、支持Python的高级框架内省特性。 项目的核心人员Kevin Modzelewski提到: 很多地方都可以这么说:目前还比较慢,但是我们相信可以做到更快。因此我们暂时选择不给出基准测试数据,因为现在噪音比较多。 未来的0.3版本将提供性能数据。 另外,尽管Python之父Guido van Rossum就职于Dropbox,但是他并没有参与该项目的开发,不过会提供一些建议。 该项目目前已经有10余位Dropbox之外的开发人员贡献代码。对构建一款高性能Python JIT编译器感兴趣的读者也可以浏览代码,并加入进去。 本文转载自:微信公众账号 - InfoQ,版权归原作者所有! |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|