前言
因为它易于学习、用途广泛,并且拥有数千个用于数据科学的有用库。但它不是快速的一件事。
这将在 Python 3.11 中发生变化,目前处于其预览版(版本 3.11.0b1)的第一个 beta 阶段,在今年晚些时候稳定发布之前。Core Python (CPython) 开发人员 Mark Shannon 在 PyCon 2022 会议上分享了有关使 Python 更快的项目的详细信息,开发人员还展示了在浏览器中运行 Python 代码目标的进展。
去年,微软资助了 Python 软件基金会 (PSF) 的一个项目,该项目由 Python 的创建者 Guido van Rossum 和 Shannon 领导,目的是让 Python 的速度是当前稳定的 3.10 系列的两倍。愿景是将 Python 推向 C 的性能。
微软在 2020 年聘请了 van Rossum, 让他可以自由选择任何项目。在去年的 PyCon 2021 大会上,他说他“选择回归本源”,并将致力于解决 Python 著名的性能不足问题。
性能也许并不是 Python 的首要任务,因为机器学习和数据科学推动了 Python 的采用,这要归功于 Tensor Flow、Numpy、Pandas 和更多平台,例如 AWS 的 Boto3 SDK for Python。这些平台每月被下载数千万次,并在通常不受硬件限制的环境中使用。
Faster CPython 项目在过去一年中 提供了有关 CPython 3.11 性能的一些更新。在 PyCon 2022 之前,该项目发布了更多结果,将 3.11 测试版预览版与 3.10在数十个性能指标上进行了比较,表明 3.11 总体上比 3.10 快 1.25 倍。
Shannon 对该项目提高 Python 性能的能力持现实态度,但相信这些改进可以将 Python 的可行用途扩展到更多虚拟机。
“Python 被广泛认为是缓慢的。虽然 Python 永远无法达到 C、Fortran 甚至 Java 等低级语言的性能,但我们希望它能够与脚本语言的快速实现竞争,例如用于 Java 的 V8 或用于 luajit 的lua,”他 去年在 Python Enhancement Proposal(Python 增强提案) 659中写道。
“具体来说,我们希望通过 CPython 实现这些性能目标,以使所有 Python 用户受益,包括那些无法使用 PyPy 或其他替代虚拟机的用户。”
PEP 659 中详述的关键方法是“专门化的自适应解释器,它积极地专门化代码,但范围很小,并且能够以低成本快速适应mis专门化。”
如前所述,VM 的优化是“昂贵的”,通常需要很长的“预热”时间。为了避免这种时间开销,VM 应该“推测即使在执行几次函数之后也可以证明特化是合理的”,因此解释器需要以非常便宜的方式持续优化和反优化。
这应该会产生一个更快的 CPython 解释器,它可以在程序执行期间跟踪单个字节码。据 PSF 称,新解释器的工作几乎完成,但仍需要完成循环和二进制操作的动态特化。
此外,3.11 中的内存消耗与 3.10 相比没有变化。
根据 Python 软件基金会对该事件的报道,关于用于 Python 性能的即时 (JIT) 编译器问题,Shannon 表示这不是优先事项,并且可能要到 Python 3.13 才会出现。
Anaconda 是用于数据科学的 Anaconda Python 发行版的制造商,它正在支持 Pyston 项目,这是一个 Python 的实现,承诺比 Python 提高速度。
Anaconda 为加速 Python 所做的一项较早的努力是 Numba 项目,这是一个基于 LLVM 的 CPython JIT 编译器,它可以加速在 CPU 或 GPU 上运行的数值 Python 函数,但不能优化整个程序,也不能解决更广泛的 Python 使用案例。另一个是PyPy,它是 CPython 的实现,带有 JIT 编译器以提高性能。
根据 Faster Python 实施计划,CPython 3.12 可能会获得一个“用于小区域的简单 JIT 编译器”,用于编译专门代码的小区域,而 3.13 将增强编译器以扩展编译区域。
今天小编还为大家带来了白嫖福利
零基础Python学习资料介绍
👉Python学习路线汇总👈
围绕Python所有方向的技术点做的整理,以形成各个领域的知识点汇总,这样就可以按照上面的知识点去找对应的学习资源,保证学得较为全面。
👉Python必备开发工具👈
温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
👉Python学习视频600合集👈
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉实战案例👈
边学边练是最高效的学习方法,这时候可以搞点实战案例来学习。
👉100道Python练习题👈
检查学习结果。
👉面试刷题👈
👉资料领取👈
这份完整版的Python全套学习资料已为大家备好,朋友们如果需要可以微信扫描下方二维码添加“住隔壁的王叔”,输入"领取资料" 可免费领取全套资料【有什么需要协作的还可以随时联系我】朋友圈也会不定时的更新最前言python知识。