微软 Faster CPython 团队:为 Python 社区增添价值


微软方面发布了一篇名为“A Team at Microsoft is Helping Make Python Faster”的博客,详细介绍了该公司的 Faster CPython 团队。

文章开头指出,近几年来 Python 的地位不断提高,包括 TIOBE 和 IEEE 都把该语言排在了榜单首位。然而,Python 的多功能性往往伴随着对其性能的批评。一些对性能敏感的软件通常是采用其他语言编写的,譬如 C 语言。近年来,大家也一直都在努力提高 Python 的 CPU 性能。

在 2020 年,核心开发者 Mark Shannon 就起草了一个将 CPython 提速约 5 倍的实施计划;平均分为 4 个阶段实现,每个阶段将 CPython 的速度提高(大约)50%。但正如 Python 之父 Guido van Rossum 所言,“对于一个志愿者来说,这是一项难以完成的工作。从一开始,我的想法是我们应该尝试看看微软是否能雇用 Mark 以及一个小团队来支持他。这是一项重要的工作,只让一个人来承担的话任务实在太重了”。

基于此,微软成立了一个包括 Guido 在内的、由 6 名工程师组成的团队;Guido 于 2020 年 11 月在退休一年后宣布再度复出,加入了微软开发者部门 (Developer Division)。Guido 表示,自己在组建这支专业团队时所寻求的是,“如果我们有不同背景和不同技能的人,作为一个团队,我们会做出更好的决定,我们会对一些意外的机遇持有更加开放的态度

目前该团队已协助其他核心开发人员按上述计划采取行动,Python 3.11 已经在该语言的某些领域实现了 10-60% 的加速。

根据介绍,除了拥有坚实的专业知识基础以及良好的协作外,团队成员间还有基于团队的贡献的一致性;“一个致力于 CPython 工作的团队最大的好处也许是一致的、集体的努力和持续的沟通”。成员间会定期开会讨论相关的工作进展,“我们所有六个人每周一都会见面。总是有很多东西可以讨论”。Guido 认为,了解彼此以及他们的协作工作为团队提供了优势,因为大家都了解彼此的沟通方式以及弱点和优势。

而当一个团队有共同的愿景时,就更容易思考和规划未来。3.11 的大部分功能都是在团队组建之前提出的,后来该团队致力于将许多性能特性引入该版本,但也已经开始研究未来版本中的特性。Shannon 最初的 4 个阶段的计划还在继续发展中,预计会在未来的几年里持续优化。团队的工作也一直保持着透明性。

另一方面,这一团队的发展遵循了微软对 Python 社区长期贡献的承诺。根据团队成员的说法,其目标是为 Python 社区“add value”。“这是我们作为一个团队的主要目标,我认为这是非常重要的一点。我真正欣赏我们团队的一点是,每个人都明白这一点……我们真的更专注于实际工作,以使 Python 变得更好,并在技术领域之外帮助 Python 社区”。通过关注 Python 社区的需求,"每个人都会受益"。 

对此,Reddit 上也有网友评论称,“所以微软做了谷歌做不到的事情”。


相關推薦

2022-05-19

在退休又复出加入微软的 Faster CPython 团队后, Python 之父 Guido van Rossum 在 2021 年 Python 语言峰会上放下狠话,称团队将在 Python 3.11 版本中实现至少提速 1 倍的进展。 而在今年的 Python 语言峰会上,Guido 和团队搭档 Mark Shannon 汇

2023-07-11

性能。PEP 703 指的是 Making the Global Interpreter Lock Optional in CPython,让全局解释器锁在 CPython 中成为可选。 该提案建议向 CPython 添加构建配置 (--disable-gil),使其在没有全局解释器锁的情况下运行 Python 代码,并进行必要的更改以

2023-07-08

次发布的新产品并没有采用 PHP 作为后端开发语言。根据 CPython 核心开发者 Łukasz Langa 透露的消息,Threads 后端采用 Python 3.10 进行构建——Meta 基于 CPython 3.10 构建了内部自用的高性能分支 Cinder。 据介绍,Cinder 针对性能进

2022-08-10

>...)),以及占有型量词 (*+, ++, ?+, {m,n}+)  Faster Cpython Project 已经出现了一些令人振奋的结果:Python 3.11 比 Python 3.10 快 10%~60% Python 3.11 的下一个预览版本将是 3.11.0rc2,目前计划于 2022 年 9 月 5 日发布。正式版则计

2022-06-02

g):((?>...)),以及占有型量词 (*+, ++, ?+, {m,n}+)  Faster Cpython Project 已经出现了一些令人振奋的结果:Python 3.11 比 Python 3.10 快 10%~60% Python 3.11 的下一个预发布版本将是 3.11.0b3,目前计划于 2022 年 6 月 16 日星期四发布。

2022-05-09

或可能缺失 bpo-46752 – 将任务组引入 asyncio Faster Cpython Project 已经出现了一些令人振奋的结果:Python 3.11 比 Python 3.10 快 10%~60% Python 3.11 的下一个预发布版本将是 3.11.0b2,目前计划于 2022 年 5 月 30 日星期一发布。

2022-07-13

>...)),以及占有型量词 (*+, ++, ?+, {m,n}+)  Faster Cpython Project 已经出现了一些令人振奋的结果:Python 3.11 比 Python 3.10 快 10%~60% Python 3.11 的下一个预览版本将是 3.11.0b5,目前计划于 2022 年 7 月 25 日发布。正式版则计

2022-09-14

>...)),以及占有型量词 (*+, ++, ?+, {m,n}+)  Faster Cpython Project 已经出现了一些令人振奋的结果:Python 3.11 比 Python 3.10 快 10%~60% 更多详情可查看官方公告。

2022-07-28

>...)),以及占有型量词 (*+, ++, ?+, {m,n}+)  Faster Cpython Project 已经出现了一些令人振奋的结果:Python 3.11 比 Python 3.10 快 10%~60% Python 3.11 的下一个预览版本将是 3.11.0rc1,目前计划于 2022 年 8 月 1 日发布。正式版则计

2022-09-29

Pyston 2.3.5 已发布。此版本显著提升了性能,优化与上游 CPython 的兼容性。 Pyston 最初是由 Dropbox 开发的开源 Python 实现,并与 Python 高度兼容。Dropbox 几年前就已停止支持开发 Pyston,不过其开发团队一直在进行维护,并于去年加

2023-10-27

CPython 核心开发者 Thomas Wouters 代表 Python 指导委员会宣布:正式接受 PEP 703 提案。 PEP 703(Making the Global Interpreter Lock Optional,让全局解释器锁成为可选),简称 no-GIL,也被称为自由线程 (free-threaded)。 根据提案的描述

2023-04-11

thon 1.5(1997 年)以来,PyInterpreterState 结构就被添加到了 CPython,允许开发者在一个进程中同时运行多个 Python 解释器。然而,多个解释器在同一进程中运行时,并不能真正地相互隔离。同一进程中的解释器始终共享大量全局状态

2023-04-04

js 的 Python 发行版。Pyodide 由编译成 WebAssembly/Emscripten 的 CPython 解释器组成,允许 Python 在网页浏览器中运行。 Pyodide 可以安装来自 PyPi 的任何 Python 包。Pyodide 还包括一个外部函数接口,可以将 Python 包暴露给 JavaScript,并将浏

2023-09-13

不修改现有词法分析器的情况下将 f-strings 的解析实现到 CPython 中。但目前来看,这些限制反而带来了复杂性。比如: 在表达式部分中,无法使用引号字符来界定 f-strings >>> f'Magic wand: { bag['wand'] }' ^ SyntaxError: invalid syn