文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Python之父:明年让Python快2倍

2024-12-03 04:05

关注

而这一“Shannon计划”的参与者除了Guido本人之外,还有任职微软的CPython核心开发人员Eric Snow,以及Semmle的研究工程师Mark Shannon。

但在此之前,Guido可并不认为提升CPython的速度有多关键,因为“有其他方法可以获得更好的性能”,比如JIT编译的PyPy,或使用C语言编写扩展。

为什么要加速?

Python真的慢吗?

不见得,开发效率和执行速度本就难以兼得。

而且发展到今天,Python已经是一个胶水语言的定位,主要用来快速构建系统的逻辑控制流,再把对性能要求高的部分丢给C/C++来实现。

不过如果只看标准版的语言实现本身的话……它的性能确实不怎么样。

[[404169]] 

动态语言的特性决定了Python会在C语言代码运行(runtime)上花费大量的时间,且难以使用JIT(Just-In-Time)进行优化。

在接受英国技术新闻网站The Register的采访时,对于“为什么开始关注CPython性能?”的问题,Shannon表示:

    过去几年里,Python在机器学习领域的使用率大大提升,可用资源也越来越多。这意味着我们可以不用担心破坏其可靠性,而是专注在性能上。

并且,Shannon之前参与的HotPy项目中所开发的解释器,比目前CPython解释器的纯Python代码快三倍。这证明了对CPython优化的可行性。

而在去年10月份的时候,耐不住退休寂寞的Guido又加入了微软:

再加上疫情的家里蹲buff,拥有了更多时间的大佬们一拍即合,决定Make Python Great Again。

加速之前的挑战

Shannon坦言,向下兼容是加速Python的最大挑战。

其实不仅是对Python,90年代末libc的那次不兼容更新,直接导致所有应用程序都要重编……

而现在已经凉凉的Pyston,官方文章里提到的Dropbox放弃Pyston项目的几大因素中,第一个也是:

这就是所有既试图兼容CPython,又想大幅提升性能的Python都会遇到的严峻问题。

因为Python的执行类似于HTML渲染:更多是对运行时应如何执行C库的描述,而非单步执行命令。

所以,Python性能提升的源头来自于这些C扩展模块。而CPython又有着超过400k的loc,这意味着要从底层去做优化是一项非常庞大的工程。

特别是对于过于动态的Python语言来说,语言的语义对优化的影响就更大了。

而现在加速的过程中,像是CPython的工具、调试器、配置文件,NumPy包,以及Cython这样的编译器,又会有多少涉及到CPython内部和底层的行为?

因此Shannon表示:

要改变是困难的……与CPython用户间的隐形协议并没有很好地定义什么能改,什么不能改。

可能是五年前从Python2.x迁移到3的痛苦经历实在是有些刻骨铭心,Guido专门发推表示这次的迁移会更加平和。 

而他也在Python峰会中承诺:不破坏stable ABI兼容性;不破坏limited API兼容性;不破坏或减缓extreme cases。

“总之,代码的可维护性才是第一要务。”

Python的5倍速之路

按照已在GitHub上发布的faster-cpython,Shannon计划具体分为四个阶段:

Python 3.10

预计在今年10月发布,主要添加一个自适应、专业化的解释器(interpreter)。

 

解释器将不再遇运行时生成代码,而是利用程序中的类型稳定性,在执行过程中适应类型和数值。

Python 3.11

Guido提出要在3.11版本实现至少2倍的提速,为此,他已经和几位Python开发人员提出了一份增强功能的提案PEP 659。

这一提案中表示要增加适应性的字节码解释器,并且实施更有效的异常处理。

除此之外,还提出了优化帧堆栈、改变函数调用的方式、增加优化以加快启动时间,以及修改 .pyc 字节码缓存文件格式等工作。

Python 3.12

这一阶段使用针对小区域的JIT解释器,在运行代码时简单、快速地对小区域的专门代码进行编译。

Python 3.13

同样在代码运行时对扩展区域进行编译,增强编译器,以完成5倍的超级加速。

Guido表示此次围绕性能展开的 Python 变更,将主要服务于运行CPU密集型纯Python代码的开发者,以及内置Python网站的用户。

而在C语言代码(如 NumPy和TensorFlow)、I/O 绑定代码、多线程代码以及算法代码上,提升效果将会比较有限。

微软回馈Python

其实,微软长期以来一直以多种方式为Python项目提供助力,包括在Azure云AI服务教程里发布免费的Python课程,以及通过VS Code Python扩展在Win10及以上版本支持Python。

自 2006 年起,微软还成为了Python软件基金会(PSF)的赞助商,并在今年出资15 万美元进行资助。

目前已有五位Python开发者社区的核心人员在微软任职,包括去年年底加入的Python之父,和这次Shannon计划里的三人之一Eric Snow。

Guido也在这次峰会里特地cue了一下微软,提出微软资助了一支小型Python团队“负责语言解释层面的性能改进工作”,以使他能携手微软同事持续对Python进行开发。

当然,对于3.11版本的短期目标,Guido还是在ppt中给自己兜了个底。

△“乐观一点,好奇一点总没错”

而对于那个四年五倍速的最终目标,Guido则表示“我们必须保持旺盛的创造力。” 

[[404171]]

 

来源:菜鸟学Python内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯