Python 性能深度剖析:从“被诟病的慢”到“Rust 重塑”的拐点

引言:Python 真的"慢"吗?

长久以来,"慢"是 Python 开发者心中挥之不去的阴影。当我们谈论 Python 与 C++ 或 Rust 的性能差距时,50倍甚至上百倍的鸿沟似乎让人绝望。

然而,在 2026 年的当下,Python 生态正经历一场前所未有的底层变革。从 CPython 解释器内部的 JIT(即时编译)之争,到 PyPI 上三分之一原生模块转向 Rust,我们必须重新审视这个问题:Python 的"慢"是宿命,还是可以被解决的工程问题?

本文基于对 Python 3.13 至 3.15 版本的追踪观察,为您深度解析 Python 性能的现状、挑战与未来。

一、3.13 的"虚惊一场":被移除的增量 GC

坊间曾传闻 Python 3.13 性能"翻车",这其实源于测试版引入的 "增量垃圾回收" 特性。虽然初衷是减少程序暂停时间,但在特定场景下导致了严重的性能回滚。好在官方在正式发布前果断移除了该特性,回退至稳定版本。

最终结论:Python 3.13 稳定版的性能是稳健的,整体比 3.12 快约 3%-8%,并引入了实验性的 JIT 和自由线程(禁用 GIL)模式。

二、3.15 的"精打细算":为什么 JIT 只提升了个位数?

当我们看到 Python 3.15 的 JIT 仅带来 4%-12% 的性能提升时,确实容易失望。但我们需要理解 Python 面临的 "先天困境":

  1. 动态类型之殇:Python 是动态类型语言,每次变量运算都需运行时类型检查。而 Rust/C++ 在编译期就确定了类型,可以生成极致优化的机器码。

  2. 轻量级 JIT 路线:CPython 采用的是"Copy-and-Patch"轻量级 JIT。它不追求 Java JIT 那种激进的重编译优化,而是以低内存开销为前提,追求"稳中有进"。

关键解读:PEP 836 中提到的"提升 20%",并非指 3.17 比 3.15 提升 20%,而是指 "在同一版本内,开启 JIT 对比不开启 JIT 的最低及格线"。这是一个基础指标,而非最终上限。

三、残酷的数学题:50倍差距如何追赶?

假设 C/Rust 执行时间为 1 秒,Python 需要 50 秒。

· 提升 20%:50秒 → 40秒(差距依然巨大)。

· 提升 5倍(香农计划目标):50秒 → 10秒(差距变为10倍)。

结论:仅靠优化 CPython 解释器,永远无法在纯计算性能上追平 C/Rust。这是动态语言与静态编译语言的物理定律决定的。

四、真正的"破局者":Rust 重写与二八定律

既然纯 Python 追不上,那怎么办?答案是:用 Rust 写底层,用 Python 写逻辑。

这就是经典的 "二八定律"------用 Rust 重写那 20% 的高频计算核心库,能解决 80% 的性能瓶颈。

为什么 Rust 插件能无视 Python 的慢?

当 Python 调用 Rust 扩展时:

  1. 入口检查:PyO3 在函数入口处完成类型检查与转换(仅一次)。

  2. 内部狂飙:Rust 内部执行的是纯静态类型的机器码,速度与 C++ 持平。

  3. 出口返回:结果打包回 Python 对象。

纯 Python 是在 1000 万次循环中反复检查类型;Rust 插件 是在入口检查 1 次,循环 1000 万次纯机器码运算。这就是性能差距的核心来源。

社区与官方的双重行动

· 社区趋势:Pydantic V2、Polars、Ruff、uv 等明星项目已用 Rust 重写,性能提升可达 10 倍至数百倍。目前 PyPI 上三分之一的新原生模块由 Rust 编写。

· 官方计划:CPython 核心团队已启动 "Rust for CPython" 项目,计划在 Python 3.16 中引入 Rust 代码重写标准库(如 base64),并将其作为可选依赖,标志着官方承认 Rust 是 CPython 生态的一等公民。

五、未来蓝图:香农计划与 PEP 836

Python 核心团队(Guido 亲自督战)正在执行 "香农计划",目标在 4-5 年内将 CPython 整体提速 5 倍。

· 短期(3.17,预计2027-2028年):官方支持的 JIT 编译器落地,结合自由线程(解放多核性能)和延迟导入(提升启动速度)。

· 长期愿景:JIT 从"追踪模式"升级为"基于方法"的优化模式,持续缩小与 Java 的差距。

六、结论:Python 的"阿尔法时刻"

我们不必纠结 Python 何时在跑分上超越 Java 或 C++。Python 的"阿尔法时刻"将是:你写后端服务时不再焦虑并发性能;启动大型数据分析时不再漫长等待;日常开发中几乎感受不到语言本身的速度限制。

那一天,就在未来 3-5 年。这一次,Python 不是在用蛮力追赶,而是借助 Rust 的锋芒和 JIT 的进化,重塑自己的底层引擎。让我们一起见证这场静悄悄的性能革命。


作者注:本文基于 CPython 3.13、3.15 特性及 PEP 836、香农计划等公开信息整理。

相关推荐
满怀冰雪2 小时前
03-第一个 Paddle 程序:Tensor 创建、计算与设备管理
人工智能·python·paddle
CClaris3 小时前
大模型量化从0到1(九):用 llama.cpp 把模型转成 GGUF 并跑本地推理
人工智能·pytorch·python·深度学习·llama
学编程的小虎3 小时前
SenseVoice微调
人工智能·python·自然语言处理
诸葛说抛光3 小时前
国内大型汽车改装展览会定展 佛山改装 佛山汽车赛事
python·汽车
chouchuang3 小时前
day-030-综合练习-笔记管理器
开发语言·笔记·python
乖巧的妹子4 小时前
Python基础核心知识点详解:内置函数、运算符、字符串方法、数据结构与类型转换
python
幸福清风4 小时前
Python 完美处理Excel合并单元格:拆分填充+自动合并
python·excel·合并单元格·拆分单元格
汤姆小白5 小时前
08-应用部署
人工智能·python·机器学习·numpy·transformer
般若-波罗蜜6 小时前
MinerU高级用法,避坑指南(持续更新)
人工智能·python·语言模型·自然语言处理