page contents

开发者请注意:Python 3.10 已成过去式,3.15 带来的性能利器值得关注

Python 3.15 正式发布,同时也带走了一个时代:2021 年问世的 Python 3.10 结束了它的生命周期。对于维护开源软件的开发者来说,这通常意味着代码基线终于可以向 3.11 靠拢,而 3.15 带来的几项新特性,则直接瞄准了大型项目长期存在的性能痛点。

attachments-2026-10-nqusYoXr6ad0307bd23de.png

Python 3.15 正式发布,同时也带走了一个时代:2021 年问世的 Python 3.10 结束了它的生命周期。对于维护开源软件的开发者来说,这通常意味着代码基线终于可以向 3.11 靠拢,而 3.15 带来的几项新特性,则直接瞄准了大型项目长期存在的性能痛点。

显式延迟导入:解决插件系统的冷启动灾难

在 Python 3.15 中,PEP 810 引入的显式延迟导入(Explicit lazy imports)是最值得关注的变化。语法非常直观:

lazy import json lazy from pathlib import Path 

这意味着模块只有在代码真正调用这些符号时才会被加载。

这个改动并非为了美观,而是有着极强的实战价值。许多 CLI 工具(例如 LLM 命令行工具)支持插件系统,如果每个插件都引入了类似 sentence_transformers 这种重型依赖,即使你只是运行一个简单的 --version 命令,系统也要花费数秒时间去预加载所有依赖。以往开发者不得不手动编写复杂的延迟加载逻辑,现在这一需求在语言层面得到了原生支持,能显著降低工具的冷启动成本。

内置采样分析器:低开销性能排查

标准库这次新增了一个名为 Tachyon 的采样分析器(profiling.sampling),而原有的 cProfile 被重命名为 profiling.tracing 以示区别。

与追踪分析器(Tracing Profiler)不同,采样分析器通过周期性捕获运行进程的堆栈跟踪来计算函数耗时。它的优势在于开销极低,可以在不修改、不侵入现有系统的情况下,对生产环境的进程进行观察。

如果你有某个正在运行的 Python 3.15 进程,现在可以直接通过 PID 附加进去进行分析:

BASH

sudo python -m profiling.sampling attach 

它支持生成火焰图、热力图,甚至能导出 Firefox profiler 格式的报告。以往实现类似功能需要依赖 py-spy 等第三方工具,现在这套能力被正式收编进了标准库。

推导式中的解包语法

PEP 798 带来了推导式内的解包语法,它是 2015 年 Python 3.5 中 PEP 448 的延伸。现在你可以写出更简洁的合并逻辑:

lists = [[1, 2], [3, 4], [5]] [*L for L in lists] # 输出 [1, 2, 3, 4, 5]  dicts = [{'a': 1}, {'b': 2}, {'a': 3}] {**d for d in dicts} # 输出 {'a': 3, 'b': 2} 

这比传统的嵌套循环推导式 [x for L in lists for x in L] 读起来要直观得多。

性能表现与 JIT 的进展

关于 3.15 的速度,开发者 Miguel Grinberg 对 3.15.0rc3 版本进行了测试。结论是 3.15 与 3.14 的整体性能基本持平,主要的惊喜来自实验性的 JIT(即时编译器)。

在 Fibonacci 测试中,JIT 开启后比标准解释器快了约 1.2 倍。虽然这只是特定场景下的提升,但这是 JIT 在该测试中首次展现出有意义的加速效果。相比之下,3.14 去年发布时曾对 3.13 完成过更大规模的全面超越。

3.10 退场后的遗产:开发者该用 3.11 了

随着 3.10 的停更,3.11 成了新的事实上的「最低兼容版本」。这对很多项目来说是个利好,因为 3.11 里堆积了大量好用的特性:

tomllib:终于不用为了读一个配置文件而去额外安装 toml 库。

asyncio 增强:引入了 TaskGroup 和 timeout(),异步任务管理变得更安全。

SQLite 深度集成:3.11 加入了 blobopen(),支持高效地读写 SQLite 行中的大型二进制对象(BLOB),同时也暴露了设置运行时限制的接口。

如果你使用 uv 管理环境,升级到 3.15 只需要 uv python install 3.15。对于存量工具,可以利用 uv tool upgrade --python 3.15 完成平滑迁移。

更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

 

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

2488 篇文章

作家榜 »

  1. Pack 2488 文章
  2. 轩辕小不懂 2403 文章
  3. 小柒 2228 文章
  4. Nen 576 文章
  5. 王昭君 216 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章