【第105期】Python将提速2-5倍!你期待吗

【第105期】Python将提速2-5倍!你期待吗_第1张图片

整理 | 于轩    

出品 | CSDN(ID:CSDNnews)

作为一门异常受欢迎的编程语言,Python的优点有很多,比如:易于学习、用途广泛、有成千上万个用于数据科学的有用的库。但同时,Python一直被诟病的就是它运行速度太慢。

在去年的PyCon US 2021大会上,Python之父Guido van Rossum曾表示:要在2022年的Python 3.11中,将Python速度提高2倍,4年内,速度提升5倍,以解决Python与C++等其他编程语言相比在速度上的关键缺点。

如今,速度太慢的情况在Python 3.11中即将改变。在今年晚些时候发布稳定版之前,目前正处于其预览版(版本3.11.0b1)的第一个测试阶段。

CPython 3.11已比3.10提速1.25倍

在近期的PyCon US 2022会议上,Core Python(CPython)开发者Mark Shannon分享了关于加速Python项目的细节,此外,开发者还展示了在浏览器中运行Python代码这一目标的进展。

去年,微软资助了Python软件基金会(PSF)的一个项目——“Shannon Plan”,该项目由Python创造者Guido van Rossum和Mark Shannon领导,承诺在今年的Python 3.11中将其速度提高2倍。其愿景是促使Python向C语言的性能发展。

【第105期】Python将提速2-5倍!你期待吗_第2张图片

微软在2020年聘请了van Rossum,并让他自由选择任何项目。在去年的PyCon US 2021会议上,他称自己 "选择回到我的根源",并将致力于解决Python著名的性能不足问题

性能也许并不是Python的首要任务,因为机器学习和数据科学的采用得益于TensorFlow、NumPy、Pandas以及更多的平台,如AWS的Boto3 SDK for Python。这些平台每月被下载数千万次,并在通常不受硬件限制的环境中使用。

Faster CPython项目(GitHub地址:https://github.com/faster-cpython/ideas/blob/main/main-vs-310.rst)提供了一些关于CPython 3.11在过去一年的性能更新。在PyCon US 2022会议之前,该项目公布了更多的结果:在几十个性能指标上对3.11测试预览版和3.10进行了比较,显示3.11.0b1总体上比3.10快1.25倍

新的字节码解释器使错误处理更高效

Shannon对该项目提高Python性能的能力持现实态度,但他相信这些改进可以将Python的可行用途扩展到更多的虚拟机。他去年在Python增强提案(PEP)659中写道:“Python被广泛认为是缓慢的。虽然Python永远达不到C、Fortran甚至Java等低级语言的性能,但我们希望它能与脚本语言的快速实现相媲美,如Javascript的V8或Lua的LuaJIT。具体来说,我们希望通过CPython实现这些性能目标,使所有Python用户受益,包括那些无法使用PyPy或其他替代性虚拟机的用户。”

在PEP 659中详述的关键方法是:“专门化的、自适应的解释器,但它在一个非常小的区域内积极地专门化代码,并能够迅速和低成本地适应错误的专门化。

如上所述,虚拟机的优化是 "昂贵的",往往需要很长的 "预热 "时间。为了避免这种时间开销,虚拟机应该推测“即使在一个函数执行几次后,专门化也是合理的”。所以,解释器需要持续地且非常低廉地进行优化和去优化。

这应该会产生一个更快的CPython解释器,它可以在程序执行过程中跟踪单个字节码。据Python软件基金会(PSF)称,新解释器的工作几乎已经完成,但仍需要完成循环和二进制操作的动态专门化。

此外,3.11的内存消耗与3.10相比没有变化。

CPython JIT编译器即将实现

关于Python性能的即时(JIT)编译器问题,根据Python软件基金会(PSF)对该事件的报道,Shannon认为这不是一个优先事项,可能最早也要到Python 3.13才能实现。

此外,用于数据科学的Anaconda Python发行版的制造商Anaconda,正在支持Pyston项目,该项目是Python的一个实现,承诺比Python有速度上的提高。

Anaconda在加速Python方面较早的努力之一是Numba项目,这是一个基于LLVM的CPython JIT编译器,它可以加速在CPU或GPU上运行的Python数值函数,但不能优化整个程序,也不能解决更广泛的Python用例。另一个是PyPy,它是CPython的一个实现,带有JIT编译器以获得更快的性能。

根据Faster CPython项目的实施计划(GitHub地址:https://github.com/markshannon/faster-cpython/blob/master/plan.md),CPython 3.12可能会获得一个 "用于小区域的简单JIT编译器",在运行时使用相对简单、快速的编译器编译小区域的专门代码;而CPython 3.13将扩展编译区域,增强编译器以生成卓越的机器代码

参考链接:https://www.zdnet.com/article/programming-languages-python-is-slow-but-its-about-to-get-faster/


推荐阅读

5a5db9ae25db790eca7525eac1b473b0.png

01

【第105期】Python将提速2-5倍!你期待吗_第3张图片Python语言程序设计

这是本经典的高校畅销教材,相信跟多科班出身的同学都不陌生。以“基础先行”方法介绍Python基本程序设计概念和方法,以“问题驱动”方法讲授程序设计技术,强调问题求解。帮你循序渐进地学习所有必需和重要的基本概念。

b3147dd335e93b86bdd4c5a50179c7b3.png

02

【第105期】Python将提速2-5倍!你期待吗_第4张图片 Effective Python:编写高质量Python代码的90个有效方法(原书第2版)

Google首席工程师撰写,Python编程进阶必读。第2版基于Python3.8,新增31条建议。帮你掌握Pythonic编程方式,写出高质量代码,所有不想永远停留在Python入门阶段的程序员都应该尽早阅读本书。

8b1380bd7a716303181d86587e481679.png

03

【第105期】Python将提速2-5倍!你期待吗_第5张图片 Python学习手册(原书第5版)

Python学习入门经典“老鼠书”!适合与蟒蛇书搭配零基础系统学习Python3,每章都对Python语言的关键内容做单独讲解,并且配有章后习题、编程练习及详尽的解答,还配有大量注释的示例以及图表,便于你学习新的技能并巩固加深自己的理解。

868799be91a9ed6677d4d04dc7d58612.png

04

【第105期】Python将提速2-5倍!你期待吗_第6张图片 Python进阶:实际应用开发实战

本书针对的是已经能够使用Python编写简单程序但想要理解什么时候适合使用高级特性的开发人员,让他们能够自如地使用这些高级特性。想要提升自身Python编程水平以及已经具有丰富的经验但希望了解新版本Python特性的开发人员,都特别适合阅读本书。基于Python3.9。

63dc82d769f9475f69492ab25c1a9b79.png

05

【第105期】Python将提速2-5倍!你期待吗_第7张图片 Python 3标准库

Python编程进阶学习手册,Python程序员必备案头工具书!帮你迅速掌握Python编程,以案例为导向,全面讲解标准库中数百个模块的使用方法和工作原理,简洁易懂,可操作性极强。

0cd97c920e90817350d20d490e079c64.png

06

【第105期】Python将提速2-5倍!你期待吗_第8张图片 Django3.0应用开发详解

Django作为一款高性能的Python Web开发框架,受关注的程度日渐提升,越来越多的企业选择使用Django进行网站开发。本书详细剖析了Django 3.0的各个知识点,帮助读者全面认识Django 3.0的技术细节以应用于实践,书中所有示例均基于Python 3.8实现。

f008db6ced7be1e942580a4ff4330795.png

07

【第105期】Python将提速2-5倍!你期待吗_第9张图片 精通Twisted:Python事件驱动及异步编程

本书探讨基于Python的事件驱动的网络引擎Twisted,并回顾它的几个流行的应用程序项目。由社区领头人撰写,他们为所涵盖的许多项目做出了贡献,并在书中分享了他们来之不易的见解和经验。

dc9211251a6490af9076483df7424855.png

08

【第105期】Python将提速2-5倍!你期待吗_第10张图片 从0到1搭建自动化测试框架:原理、实现与工程实践

本书详细介绍了如何搭建一个完整的Python自动化测试框架,并通过大量的应用实例辅助读者理解搭建原理,是初学者和从业者的不二选择。相信读者通过本书一定能够掌握搭建自动化测试框架的方法,并快速实现从测试工程师向测试开发工程师的转型,完成职业生涯的飞跃。

730638a12a8b4a78a88f9d5131c1eb9b.gif

福利时间

第104期赠书活动中奖名单公布

【第105期】Python将提速2-5倍!你期待吗_第11张图片

【第105期】Python将提速2-5倍!你期待吗_第12张图片

赠书规则

送书规则:感谢大家对华章图书的信任与支持。先投票,再在留言区谈谈你想要哪本书及理由。小编会在留言池随机捞2条锦鲤,分别包邮送出1本正版书籍。本推文中的图书可任选一本。

截止日期:2022年5月27日下午16:00

特别注意

1、请按规则结合自身工作与学习的经历留言请规避百度式名词解释式言论,走心留言优先。

2、阅读最多、分享最多者优先。参与活跃者优先。同一人每月最多获赠一本书。

特别说明:本活动无任何内幕,最终解释权归华章分社所有。


487f441be78c8c9696ad02095fe5b3cc.gif

更多精彩回顾

书讯 | 5月书讯(上)|  元宇宙、因果推断、薛定谔方程...你关注的都在这

书讯 | 5月书讯(下)|设计致物系列+少儿编程好书推荐

书单 | 知乎高赞:有哪些你看了以后大呼过瘾的数据分析书?

干货 | Go语言精进之路:绞尽脑汁,帮你理解方法本质并选择正确的receiver类型

收藏 | 盘点知识图谱在 5 大智能领域的应用

上新 | 产品和运营双视角,9个维度全面讲解用户运营

【第105期】Python将提速2-5倍!你期待吗_第13张图片

你可能感兴趣的:(编程语言,python,人工智能,java,机器学习)