当前位置: 首页 > 科技观察

翻过来?Python3.11性能提升近64%!!

时间:2023-03-21 18:55:06 科技观察

Python编程语言速度不快已经不是什么秘密了。许多开发人员期望这种语言的性能能够提高。这种情况可能很快就会改变,或者至少会朝着正确的方向前进。5月7日,Python团队发布了最新版本的Python——Python3.11。当前版本是供开发人员测试或试验的测试版(Beta1)。按照开发组规定,正式版预计在2022年10月发布,有好奇的网友在自己的虚拟机上测试了一下。他在单独的Docker容器中安装了Python3.10和3.11,并查看了它们在一组基准测试中的比较情况。pyperformance包用于完成这项工作,这将帮助开发人员完成繁重的基准测试工作。总结数据,Python3.11平均比Python3.10快14%。新的3.11版本在某些基准测试中稍慢,但在大多数基准测试中快64%。以下是在配备10核CPU的M1ProMacBookPro16上运行的基准测试。每个Python版本都安装在Docker中,它使用5个逻辑CPU内核。以下是不同包的运行数据:目前Python3.11正式版还没有正式发布,需要等待完全稳定的版本。目前只测试了一个候选版本,正式版发布后两者的差距可能会更大。.相关报道:快25%!CPython3.11来了|洛琪琪,出品|OSC开源社区(ID:oschina2013)退休后重新加入微软的FasterCPython团队,Python之父GuidovanRossum在2021年Python语言峰会上放狠话,称该团队有望实现至少一个Python3.11版本中的1倍加速。在今年的Python语言峰会上,Guido和他的团队伙伴MarkShannon报告了最新进展:与3.10版本相比,CPython3.11的加速比在10-60%之间,具体取决于代码大小和工作领域等条件。当使用pyperformance基准套件测量时,在UbuntuLinux上使用GCC编译时,CPython3.11平均比CPython3.10快25%。CPython3.11的性能改进主要集中在更快的启动和更快的运行时。这些优化大部分来自PEP659:AdaptiveInterpreter。解释器不能在字节码之外工作。目前关于PEP659提案的工作已基本完成,但for循环和二进制操作的动态优化仍有待完成。在提速25%的同时,Python3.11仍有一些需要改进的地方,比如Python在3.11中的内存消耗与3.10基本相同。还有C扩展的问题:CPython对C的简单接口是一个主要优势,而与C扩展的不兼容是一个主要缺点。FasterCPython团队在CPython3.11中所做的优化工作很大程度上忽略了扩展模块的问题。对此,团队负责人Shannon表示,团队正在探索将低级函数API暴露给虚拟机的可能性,以尽可能减少Python代码和C代码。对于万众期待的JIT编译器,Shannon表示实现JIT的第一步是实现跟踪解释器,但是需要关注的项目还是太多了,引入JIT编译器还有很长的路要走,“最早的可能要到3.13”。(顺便说一下,Shannon一直怀疑CPython是否真的需要引入JIT。)有趣的是,昨天我们报道了开发人员SamGross的一项新提议:从CPython解释器中完全移除GIL——全局解释器锁。这个提议和FasterCPython团队的工作将以截然不同的方式加速多线程Python代码,但两者可能存在一些冲突。毕竟,FasterCPython已经实现的优化,很大一部分是建立在GIL仍然存在的前提下的。注:在去年的核心开发者冲刺会上,核心开发者与SamGross就nogil项目进行了深入的讨论,回答了很多大家比较关心的问题。具体会议纪要可以查看这篇文章——Python官方研讨:彻底去除GIL真的可行吗?