上个月,Python 3.11 Beta 1 作为 Python 编程语言重大更新的第一个预览版发布。 除了新的语言特性和其他改进之外,Python 3.11 的性能看起来非常棒,与之前的 Python 3.x 版本相比性能提升非常好。
Python 3.11 一直在支持 asyncio 中的任务组、回溯中的细粒度错误位置、返回其类实例的自类型、可变泛型的 TypeVarTuple 以及各种其他功能。
除了影响 Python 语言本身的变化外,Python 3.11 还从“更快的 CPython 项目”着手性能工作,以加速参考实现。 根据官方数据,Python 3.11 比 Python 3.10 快 10~60%,标准基准套件的速度提高了 1.22 倍。
正式的 Python 3.11.0 版本预计要到 10 月才会发布,而多个测试版将在 7 月发布,然后在 10 月初之前的接下来的几个月中至少有两个候选版本。
最近在 AMD Ryzen 9 5950X 开发者盒子上,进行了一些基准测试,查看上个月的 Python 3.11 Beta 1(测试时最新的开发版本)的性能。 Python 3.11 Beta 性能与早期版本(包括 Python 3.10.4、Python 3.9.13 和 Python 3.8.13)进行了比较。 所有这些 Python 版本都是在同一系统上每次以相同的版本配置从源代码构建的。 然后进行了各种不同的 Python 基准测试,以了解 Python 3.11 与之前的 Python 版本相比的表现如何。
首先是非常简单的 PyBench Python 基准测试……即使在这个相对简单的基准测试中,Python 3.8 到 3.10 的性能大致相同,迁移到 Python 3.11 Beta 也显示出显着的加速:Python 3.11 Beta 大约占了 84% 完成这组脚本测试的先前版本的时间。
转到常见的 PyPerformance Python 基准测试,Python 3.11 Beta 加速看起来棒极了!
所谈论的 Python 3.11 的性能提升确实看起来非常真实和诱人。
虽然 Python 3.8 到 Python 3.10 的性能基本相同,没有任何广泛的性能改进,但 Python 3.11 的加速对于这个参考实现来说看起来是巨大的,类似于从 PHP5 到 PHP7 在 PHP 端看到的优化水平。
Python 3.11 将是一个非常令人兴奋的版本,具有显着的性能提升。 尽管它要到 10 月才稳定下来,但在某些 Linux 发行版的 H1’2023 发布之前,它可能不能开箱即用。
我将在临近发布时返回更多 Python 3.11 基准测试,但在最近的 Python 3.x 版本上没有看到太多显着性能优化的方式之后,这些性能数字已经非常诱人。 看看英特尔的 Clear Linux 之类的东西是否可以进一步提高 Python 的性能也很有趣。
当对我为本文在 AMD Ryzen 9 5950X 上执行的所有 Python 基准测试取几何平均值时,Python 3.11 Beta 总体上比当前的 Python 3.10.4 稳定版本快约 41%,比老化的 Python 3.8 系列快 45% .