阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

Pyston 0.2 发布,支持更多 Python 特性

  • 2014-09-21
  • 本文字数:867 字

    阅读完需:约 3 分钟

Pyston 是 Dropbox 发起的一个开源项目,目标是使用 LLVM 和现代 JIT 技术开发一款高性能的 Python 实现。4 月份 InfoQ 中文站曾经报道过。在经历了5 个月的开发之后, Pyston 0.2 发布了。与最初的 0.1 版本相比,该版本包含了大量改进。尽管仍然有很多工作要做,但是语言兼容性已经有很大改观,而且很多标准库、某些标准扩展模块无需修改即可运行。不过 Pyston 离真正可用还有很长的路要走。

该版本支持的 Python 特性包括:

  • 异常,使用 C++ 风格的异常处理
  • 继承和元类(metaclass),不过尚不支持多重继承
  • 基本的原生 C API 支持
  • 闭包、生成器、Lambda 和生成器表达式
  • 完整的参数处理行为
  • long 和 integer 的提升(promotion)
  • 多线程支持

具体而言,如仍在继续开发的原生 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 编译器感兴趣的读者也可以浏览代码,并加入进去。

2014-09-21 08:372351
用户头像
臧秀涛 略懂技术的运营同学。

发布了 300 篇内容, 共 130.2 次阅读, 收获喜欢 34 次。

关注

评论

发布
暂无评论
发现更多内容

【数据结构与算法 10】算法的时间复杂度和空间复杂度

Java 程序员 后端

【白话设计模式】去哪儿网一面,java面试题刷题软件

Java 程序员 后端

一份秀出新天际的SpringCloudAlibaba笔记,把微服务玩的出神入化

Java 程序员 后端

一文带你了解Java并发中的锁优化,让你的代码运行效率翻倍

Java 程序员 后端

【线程】(1),java高级特性编程及实战pdf百度云

Java 程序员 后端

一夜之间火爆GitHub的好文!!阿里资深架构师整理分享

Java 程序员 后端

一篇送给临近35岁程序员的文章,mysql数据库sql语句面试题

Java 程序员 后端

万字长文,字节大牛百万调优经验之作:JVM调优实战笔记

Java 程序员 后端

【线程】,Java自学宝典pdf

Java 程序员 后端

一篇文章带你快速理解JVM运行时数据区 、程序计数器详解 (手画详图(1)

Java 程序员 后端

一文读懂 spring MVC 请求处理流程,Java开发新手入门教程

Java 程序员 后端

【被面试官吊打】从系统角度考虑性能优化,kafkajvm调优

Java 程序员 后端

【数据库实验】,java语言零基础自学

Java 程序员 后端

一口气面试6家大厂,已拿5家offer,大厂没有你想象中的难

Java 程序员 后端

一文彻底弄懂如何选择抽象类还是接口,linux基础入门知识

Java 程序员 后端

一文掌握大数据架构师需要具备的能力和格局,别再说你不会JVM性能监控和调优了

Java 程序员 后端

一篇文带你入门SSM框架Spring开发!精彩干货不间断!

Java 程序员 后端

一篇文章带你快速理解JVM运行时数据区 、程序计数器详解 (手画详图

Java 程序员 后端

一篇文章丢给你,让你一文了解JVM,2021Java最新大厂面试真题总结

Java 程序员 后端

一篇文章让你了解基于Spring的测试,java自学百度网盘

Java 程序员 后端

【网络信息安全】身份认证,hadoop环境搭建教程

Java 程序员 后端

【计算机网络 1】计算机网络概述,Java高级工程师进阶学习—Java热修复原理

Java 程序员 后端

一年Java开发经验,阿里巴巴五面(已offer,java原理视频

Java 程序员 后端

一招搞定 Spring Boot 可视化监控!,java进阶教程云盘

Java 程序员 后端

一文带你深扒ClassLoader内核,揭开它的神秘面纱

Java 程序员 后端

一款SQL自动检查神器,再也不用担心SQL出错了,自动补全

Java 程序员 后端

一行Java代码实现两玩家交换装备【并发编程】

Java 程序员 后端

【源码分析设计模式 7】Integer中的享元模式

Java 程序员 后端

一场哔哩哔哩Java开发面试之旅,分享面试经历及复习资料

Java 程序员 后端

一文看透Java高并发:Synchronized锁的性质、原理及其缺陷

Java 程序员 后端

一次完整的JVM NativeMemoryTracking 堆外内存泄露分析

Java 程序员 后端

Pyston 0.2发布,支持更多Python特性_语言 & 开发_臧秀涛_InfoQ精选文章