python-build-standalone 现在有 Python 3.14.0a5
来自查理·马什的激动人心的消息:
我们刚刚将最新的 Python 3.14 alpha (3.14.0a5) 发布到 uv 和 python-build-standalone。这是第一个包含尾部调用解释器的版本。
我们的初始基准测试显示 CPython 的性能提高了约 20-30%。
这是一项优化,于 2024 年 1 月首次在 fast-cpython 中讨论,然后由 Ken Jin在本月早些时候落地并包含在 3.14a05 版本中。 alpha 发行说明说:
CPython 中添加了一种基于尾部调用的新型解释器。对于某些较新的编译器,该解释器提供了明显更好的性能。我们机器上的初步数据表明,Python 代码速度提高了 -3% 到 30%,根据平台和架构,py 性能的几何平均速度提高了 9-15%。基线是使用 Clang 19 构建的 Python 3.14,没有这个新的解释器。
该解释器目前仅适用于 x86-64 和 AArch64 架构上的 Clang 19 及更高版本。然而,我们预计 GCC 的未来版本也将支持这一点。
将其包含在python-build-standalone中意味着现在通过uv进行尝试很简单。我升级到最新的uv
,如下所示:
pip install -U uv
然后运行uv python list
查看可用版本:
cpython-3.14.0a5+freethreaded-macos-aarch64-none <download available> cpython-3.14.0a5-macos-aarch64-none <download available> cpython-3.13.2+freethreaded-macos-aarch64-none <download available> cpython-3.13.2-macos-aarch64-none <download available> cpython-3.13.1-macos-aarch64-none /opt/homebrew/opt/[email protected]/bin/python3.13 -> ../Frameworks/Python.framework/Versions/3.13/bin/python3.13
我像这样下载了新的 alpha:
uv python安装cpython-3.14.0a5
并尝试了一下,如下所示:
uv运行--python 3.14.0a5 python
Astral 团队一直在使用 Ken 的bm_pystones.py基准测试脚本。我抓了一份这样的副本:
wget ' https://gist.githubusercontent.com/Fidget-Spinner/e7bf204bf605680b0fc1540fe3777acf/raw/fa85c0f3464021a683245f075505860db5e8ba6b/bm_pystones.py '
并用uv
运行它:
uv运行--python 3.14.0a5 bm_pystones.py
给予:
Pystone(1.1) time for 50000 passes = 0.0511138 This machine benchmarks at 978209 pystones/second
受到 Charlie示例的启发,我决定尝试超精细基准测试工具,该工具可以运行多个命令来统计比较它们的性能。我想出了这个食谱:
酿造安装超精细 超精细\ “ uv 运行 --python 3.14.0a5 bm_pystones.py ” \ “ uv run --python 3.13 bm_pystones.py ” \ -n 尾调用 \ -n 基线 \ --热身10
因此,3.14.0a5 在基准测试中的得分比 3.13 快 1.12 倍(在我噪音极大的 M2 MacBook Pro 上)。
原文: https://simonwillison.net/2025/Feb/13/python-3140a5/#atom-everything