Python 3.15.0 RC2 发布:最终候选版带来的新特性与性能提升
Python 官方博客发布公告,宣布 Python 3.15.0rc2 发布。这是 3.15 系列最后一个计划中的发布候选版,自 3.15.0rc1 以来包含约 144 个 bug 修复、构建改进和文档变更,由 76 位贡献者完成。正式版 3.15.0 计划于 2026 年 10 月 1 日发布。公告同时列出了 3.15 系列的主要新特性,包括显式惰性导入、frozendict 内置类型、帧指针默认启用等 PEP 变更,以及 JIT 编译器显著升级带来的性能提升。本文基于 Python 官方公告,系统解读 3.15 系列的新特性、性能改进和生态准备建议。
版本发布概况
RC2 发布说明
Python 3.15.0rc2 的关键信息:
- 这是最终计划中的发布候选版
- 自 3.15.0rc1 以来包含约 144 个 bug 修复、构建改进和文档变更
- 由 76 位贡献者完成
- 进入候选版阶段后,只允许明确的 bug 修复代码变更
- 正式版 3.15.0 计划于 2026-10-01 发布
- 从此版本起 3.15 系列不再有 ABI 变更
- 目标是尽可能少的代码变更
对第三方项目的呼吁
公告强烈鼓励:
- 第三方 Python 项目维护者在 RC 阶段为 3.15 做准备
- 在 PyPI 上发布 Python 3.15 wheel
- 帮助其他项目进行自己的测试
- 基于 3.15.0 候选版构建的二进制 wheel 将兼容未来的 3.15 版本
- 向 Python bug tracker 报告问题
注意事项:
- 这是预览版本
- 尽可能接近最终版本
- 不建议在生产环境使用
核心团队文档工作
公告提醒核心团队成员:
- 所有变更是否已正确记录
- 是否在 What's New 中提及
- 是否注意到其他文档不足的变更
3.15 系列主要新特性
性能与解释器
- PEP 810:显式惰性导入,加快启动速度
- PEP 831:帧指针默认启用,改进系统级可观测性
- PEP 799:Tachyon 高频统计采样分析器
- JIT 编译器显著升级:
- x86-64 Linux 上比标准解释器提升 8-9% 的几何平均性能
- AArch64 macOS 上比尾调用解释器提升 12-13%
- 官方 Windows 64 位二进制现在使用尾调用解释器
- 官方 macOS 二进制默认安装自由线程支持
- 改进的错误消息
新内置类型与语言特性
- PEP 814:新增 frozendict 内置类型(不可变字典)
- PEP 661:新增 sentinel 内置类型(哨兵值)
- PEP 798:推导式中的解包(Unpacking in comprehensions)
- PEP 686:Python 默认使用 UTF-8 编码
- PEP 728:TypedDict 支持类型化的额外条目
- PEP 747:用 TypeForm 标注类型形式
- PEP 800:类型系统中的不相交基类
包与 API
- PEP 829:包启动配置文件
- PEP 782:新的 PyBytesWriter C API,用于创建 Python bytes 对象
- PEP 803/820/793:自由线程构建的稳定 ABI 及相关 C API
- PEP 799:专门的性能分析包,用于组织 Python 性能分析工具
关键特性详解
PEP 810:显式惰性导入
- 目标:加快 Python 启动时间
- 机制:延迟模块导入直到实际使用
- 影响:大型应用的启动速度提升
- 意义:解决 Python 生态长期存在的启动开销问题
PEP 814:frozendict 内置类型
- 新增不可变字典类型
- 与 dict 类似但不可修改
- 适合配置、常量等场景
- 提升代码安全性
PEP 831:帧指针默认启用
- 系统级可观测性改进
- 性能分析工具可以更准确地采样
- 对运维和调试有实际价值
- 与 PEP 799 分析器配合
JIT 编译器升级
- 性能提升:x86-64 Linux 上 8-9%,AArch64 macOS 上 12-13%
- 尾调用解释器成为 Windows 64 位默认
- 自由线程支持在 macOS 默认安装
- 标志着 Python 性能工程的重要进展
发布节奏与生态准备
Python 发布节奏
- 每年一个主要版本(X.Y.0)
- RC 阶段通常 2-3 个候选版
- 正式版在 RC 后约一个月
- 3.15.0 正式版:2026-10-01
- 3.15 系列持续维护约 2 年
生态准备建议
- 库维护者:在 RC 阶段测试并发布 3.15 wheel
- 应用开发者:在 CI 中增加 3.15 RC 测试
- 工具链:更新到支持 3.15 的版本
- 关注 ABI 稳定:RC 后无 ABI 变更
- 报告问题:帮助改进正式版
性能测试建议
- 对比 3.14 与 3.15 的性能
- 关注 JIT 带来的提升(x86-64 Linux、AArch64 macOS)
- 测试自由线程支持(macOS 默认)
- 测试显式惰性导入的启动时间改进
- 验证帧指针启用后的可观测性
总结
Python 3.15.0rc2 是 3.15 系列的最终候选版,标志着 3.15 功能冻结,正式版 3.15.0 计划于 2026 年 10 月 1 日发布。3.15 系列的新特性覆盖多个方面:性能方面,JIT 编译器显著升级(x86-64 Linux 提升 8-9%,AArch64 macOS 提升 12-13%),帧指针默认启用改进可观测性,PEP 810 显式惰性导入加快启动速度;语言特性方面,新增 frozendict 内置类型(PEP 814)、sentinel 内置类型(PEP 661)、推导式解包(PEP 798);生态方面,默认 UTF-8 编码(PEP 686)、TypedDict 类型化额外条目(PEP 728)、类型系统改进(PEP 747/800);API 方面,新的 PyBytesWriter C API(PEP 782)、自由线程构建的稳定 ABI(PEP 803/820/793)、包启动配置文件(PEP 829)。对生态的影响:第三方项目应在 RC 阶段准备 3.15 wheel,基于候选版构建的二进制 wheel 将兼容未来 3.15 版本;进入 RC 阶段后只有 bug 修复会被接受,功能已冻结。性能测试建议关注 JIT 提升、自由线程支持、显式惰性导入的启动改进。3.15 是 Python 性能工程的重要里程碑,JIT 编译器的显著升级和尾调用解释器的采用,预示着 Python 在性能竞争中的持续进步。
来源:https://blog.python.org/2026/09/python-3150-rc2/