+8613426109659
webmaster@21cto.com

Python 发布 3.14 版本,谨慎支持自由线程

编程语言 0 20 1天前
图片

导读:新的Python版本包含 JIT 编译器,但属于实验性质,有可能会降低性能。

10月9日,Python 团队发布了 3.14 版本。其中包含许多新功能,包括免费线程支持、使用并发解释器的能力、改进的调试器支持以及可选的新解释器,可将性能提高 3% 到 5%。

Python 中的自由线程功能(可禁用全局解释器锁 (GIL)),现已成为PEP(Python 增强提案:https://peps.python.org/pep-0703)703的完整实现,这一备受期待的功能使 Python 的并发编程变得自然流畅。

自由线程模式还支持一个专门的自适应解释器。它最初是微软的马克·香农(Mark Shannon)领导的 Faster CPython 项目的一部分。但是微软已于 5 月停止了对它的支持)。

图片

默认状态下不安装免费线程支持

话虽然这样说,但我们对自由线程 Python 的处理方式仍然持谨慎态度。最大的问题是可能造成现有代码会崩溃,尤其是在使用 C API 时,因为它是应用程序二进制接口 (ABI),两者不兼容;第二个问题是,使用自由线程解释器时,单线程代码的运行速度会降低 5% 到 10%。

因此在当前的版本,虽然现在完全支持自由线程 Python,但是自由线程解释器并非默认安装。在 Mac 上,安装程序要求将其选择为自定义安装;在 Windows 上,用户需要使用 Windows 应用商店中新的预览版 Python 安装管理器来添加自由线程安装:

py install 3.14

安装完成后,需要使用诸如python3.14t的命令指定自由线程构建,否则仍将运行单线程进行构建。

新的预览安装管理器已在 Windows 应用商店中推出

题图:新的预览版安装管理器已经在 Windows 应用商店中推出

我们总结了Python 3.14 中的一些优点,包括如下特性:

  • 模板字符串文字(t””);这是一种新的字符串插值机制,可以更轻松地清理用户输入。

    它很酷:与 f 字符串不同,t 字符串返回一个模板对象,使库能够定义自定义解析(例如,安全的 SQL 查询)。

    比如以下用例:为金融机器人构建安全的查询构建器。

from string import Templatet=t'SELECT * FROM stocks WHERE ticker = fticker}"result = t.substitute(ticker="AAPL") # Custom engine can sanitize inputsprint(result)
  • 支持同一进程中的多个解释器;这为某些类型的并发编程带来性能和隔离优势。
  • 一个新的调试接口,使工具能够附加到 Python 进程而无需停止它们。
  • 新的可选解释器;可以将性能提高 3% 至 5%。
  • Python 标准库支持 Zstandard 压缩,这是 Facebook 开发的一种快速高效的格式。
  • 一个新的命令行界面,用于使用异步任务检查正在运行的 Python 进程。
  • 适用于 macOS 和 Windows 的实验性 JIT 编译器。


JIT 编译器听起来确实令人兴奋,但它并不推荐在生产环境中使用,而且在某些情况下实际上会降低性能,并且与某些调试器配合不佳。

自由线程 Python 构建目前暂时不支持 JIT 编译器。

关于Python 3.14 中新功能的完整详细信息,请各位开发者参阅发行说明~

https://docs.python.org/3/whatsnew/3.14.html

作者:洛逸

评论

我要赞赏作者

请扫描二维码,使用微信支付哦。