Python 3.12 vs Python 3.13 – 性能测试
时间:2024-10-16 10:14 来源:未知 作者:IT
Python 3.13 上周正式发布了稳定版,主要变化包括一个新的交互式解释器、对在自由线程模式(无全局解释锁,no-GIL)下运行的实验性支持 (PEP 703),以及即时编译器 (PEP 744)。这些改进预计将带来性能的适度提升。
近日,开发者在 AMD Ryzen 7000 系列和第 13 代 Intel Core 处理器的电脑上,对 Python 3.13 与 Python 3.12 进行了性能测试,共计 100 项不同的基准测试。
所有测试都在使用 Windows 11 的电脑上进行,使用的是 Python 3.12.7 和 Python 3.13.0(均为 64 位版本)的 pyperformance 1.11.0 库。
AMD Ryzen 7000 系列桌面处理器
测试的第一部分使用一台配备 AMD Ryzen 9 7900 处理器、DDR5 内存和 M.2 PCIe Gen4 NVMe 驱动器的台式电脑。
下表显示了在该设备上使用 Python 3.12(作为参考)和 Python 3.13 进行的 100 项测试的结果。
基准测试
Python 3.12
Python 3.13
提升倍数
2to3
226 ms
217 ms (1.04x faster)
1.04 倍
async_generators
262 ms
256 ms (1.02x faster)
1.02 倍
async_tree_cpu_io_mixed
514 ms
411 ms (1.25x faster)
1.25 倍
async_tree_cpu_io_mixed_tg
508 ms
393 ms (1.29x faster)
1.29 倍
async_tree_eager
70.9 ms
73.4 ms (1.04x slower)
1.04 倍(慢)
async_tree_eager_cpu_io_mixed
303 ms
312 ms (1.03x slower)
1.03 倍(慢)
...
...
...
...
结果显示,Python 3.13 在以下测试中比 Python 3.12 有最佳性能结果:async_tree_eager_io_tg(快 1.61 倍),async_tree_eager_io(快 1.54 倍),async_tree_io_tg(快 1.54 倍)。
然而,你可能会注意到一些测试的性能下降,特别是在 coverage(慢 1.36 倍),create_gc_cycles(慢 1.13 倍),regex_v8(慢 1.13 倍)。
此外,你可以根据属于特定组别的基准测试来检查 Python 3.13 和 Python 3.12 之间的性能差异。
下表显示了与 Python 3.12 相比,Python 3.13 的基准测试组的几何平均值。
基准测试组
Python 3.13 与 Python 3.12
apps
1.06x faster
asyncio
1.22x faster
math
1.07x faster
regex
不显著
serialize
1.05x faster
startup
1.04x slower
template
1.03x faster
第 13 代 Intel Core 移动处理器
测试的第二部分使用一台配备 Intel Core i3-1315U 处理器(也用于笔记本电脑)、DDR4 内存和 M.2 PCIe Gen4 NVMe 驱动器的迷你电脑。
下表显示了在该设备上使用 Python 3.12(作为参考)和 Python 3.13 进行的 98 项测试的结果。由于在 Python 3.13 的此配置中无法运行,因此跳过了 “dask” 测试。
基准测试
Python 3.12
Python 3.13
提升倍数
2to3
260 ms
256 ms (1.01x faster)
1.01 倍
async_generators
253 ms
251 ms (1.01x faster)
1.01 倍
async_tree_cpu_io_mixed
544 ms
428 ms (1.27x faster)
1.27 倍
async_tree_cpu_io_mixed_tg
546 ms
412 ms (1.33x faster)
1.33 倍
async_tree_eager
78.7 ms
83.9 ms (1.07x slower)
1.07 倍(慢)
...
...
...
...
结果显示,Python 3.13 在以下测试中比 Python 3.12 有最佳性能结果:asyncio_tcp_ssl(快 1.51 倍),async_tree_io_tg(快 1.43 倍),async_tree_eager_io(快 1.40 倍)。
然而,你可能会注意到一些测试的性能下降,特别是在 coverage(慢 3.85 倍),regex_v8(慢 1.26 倍),telco(慢 1.19 倍)。
此外,你可以根据属于特定组别的基准测试来检查 Python 3.13 和 Python 3.12 之间的性能差异。
下表显示了与 Python 3.12 相比,Python 3.13 的基准测试组的几何平均值。
基准测试组
Python 3.13 与 Python 3.12
apps
不显著
asyncio
1.19x faster
math
1.06x faster
regex
1.04x slower
serialize
1.02x faster
startup
1.01x slower
template
1.02x slower
(责任编辑:IT)
Python 3.13 上周正式发布了稳定版,主要变化包括一个新的交互式解释器、对在自由线程模式(无全局解释锁,no-GIL)下运行的实验性支持 (PEP 703),以及即时编译器 (PEP 744)。这些改进预计将带来性能的适度提升。 近日,开发者在 AMD Ryzen 7000 系列和第 13 代 Intel Core 处理器的电脑上,对 Python 3.13 与 Python 3.12 进行了性能测试,共计 100 项不同的基准测试。 所有测试都在使用 Windows 11 的电脑上进行,使用的是 Python 3.12.7 和 Python 3.13.0(均为 64 位版本)的 pyperformance 1.11.0 库。 AMD Ryzen 7000 系列桌面处理器测试的第一部分使用一台配备 AMD Ryzen 9 7900 处理器、DDR5 内存和 M.2 PCIe Gen4 NVMe 驱动器的台式电脑。 下表显示了在该设备上使用 Python 3.12(作为参考)和 Python 3.13 进行的 100 项测试的结果。
结果显示,Python 3.13 在以下测试中比 Python 3.12 有最佳性能结果:async_tree_eager_io_tg(快 1.61 倍),async_tree_eager_io(快 1.54 倍),async_tree_io_tg(快 1.54 倍)。 然而,你可能会注意到一些测试的性能下降,特别是在 coverage(慢 1.36 倍),create_gc_cycles(慢 1.13 倍),regex_v8(慢 1.13 倍)。 此外,你可以根据属于特定组别的基准测试来检查 Python 3.13 和 Python 3.12 之间的性能差异。 下表显示了与 Python 3.12 相比,Python 3.13 的基准测试组的几何平均值。
第 13 代 Intel Core 移动处理器测试的第二部分使用一台配备 Intel Core i3-1315U 处理器(也用于笔记本电脑)、DDR4 内存和 M.2 PCIe Gen4 NVMe 驱动器的迷你电脑。 下表显示了在该设备上使用 Python 3.12(作为参考)和 Python 3.13 进行的 98 项测试的结果。由于在 Python 3.13 的此配置中无法运行,因此跳过了 “dask” 测试。
结果显示,Python 3.13 在以下测试中比 Python 3.12 有最佳性能结果:asyncio_tcp_ssl(快 1.51 倍),async_tree_io_tg(快 1.43 倍),async_tree_eager_io(快 1.40 倍)。 然而,你可能会注意到一些测试的性能下降,特别是在 coverage(慢 3.85 倍),regex_v8(慢 1.26 倍),telco(慢 1.19 倍)。 此外,你可以根据属于特定组别的基准测试来检查 Python 3.13 和 Python 3.12 之间的性能差异。 下表显示了与 Python 3.12 相比,Python 3.13 的基准测试组的几何平均值。
(责任编辑:IT) |