写点什么

增量垃圾收集器的“重大更改”使 Python 3.13 推迟发布

  • 2024-10-16
    北京
  • 本文字数:935 字

    阅读完需:约 3 分钟

大小:426.77K时长:02:25
增量垃圾收集器的“重大更改”使 Python 3.13 推迟发布

CPython 3.13 的完整版本被推迟了一周发布,原因是为了移除增量垃圾收集器(GC),此前有报道称它会导致代码速度变慢,尽管这一更改的初衷是提高性能。

 

CPython 核心开发人员 Thomas Wouters 发布了他对“3.13 中增量 GC 更改的影响”的担忧,并补充说“目前尚不清楚增量 GC 是否提供了显著的改进(尽管较短的暂停时间可能还不错),它在常见情况下显然开销有点大,而且我们还在发现一些新的问题。”

 

虽然在这个非常晚的阶段移除它是“一项重大更改”,但 Wouters 认为,一个新的候选版本(没有增量 GC)并将 3.13 的发布推迟一周就足够了。“我们正在回滚到已知的旧代码,这比试图解决新代码中出现的各种问题的做法风险更小,”他说。

 

新的增量式 GC 目前仍保留在 CPython 3.14 的代码中,该版本计划于明年此时发布,但 Wouters 对此表示怀疑,他说“我们需要为这一更改提供更多的价值主张。”

 

微软 Faster CPython 团队的技术负责人 Mark Shannon 于去年 8 月提出了该特性,他表示:“当前的 GC 效率低下,而且可能会有非常长的暂停时间……我们应该使用增量式收集器,它可以提高效率并大大减少最大暂停时间。”

 

删除它的原因是 Sphinx 的性能下降,Sphinx 是 Python 团队使用的文档工具。使用 Python 3.13 时,构建 Sphinx 的时间从大约 1.28 秒增加到大约 1.80 秒,使用 Sphinx 构建 CPython 文档的时间从 45.5 秒增加到 62.7 秒。移除增量式 GC 已解决该问题。

 

另一位核心开发人员 Neil Schemenauer 指出,对 GC 的更改本质上可能会加快某些程序的速度并降低其他程序的速度。此外,“这可能会导致它们使用更多或更少的内存。或者,加快或减慢文件描述符和套接字等资源的释放速度。”

 

该特性发布过程中出现的一个问题是,试用发布候选版本的用户相对较少,因此很难衡量像这样的,结果好坏参半的更改的总体影响。“我们不知道这些 [减速] 是罕见情况还是常见情况。给它更多时间,让它在 3.14 分支中变得更成熟是一种谨慎的做法,我认为这是个好决定,”Schemenauer 说。

 

在某些情况下,移除增量 GC 会略微降低性能,像另一位开发人员报告的那样,特别是在 macOS 上。

 

原文链接:https://devclass.com/2024/10/04/python-3-13-delayed-by-drastic-change-removal-of-incremental-garbage-collector/

2024-10-16 15:234384

评论

发布
暂无评论
发现更多内容

Web Components 使用体验

yuanyxh

WebComponent webComponents

决定LED屏价格的关键因素

Dylan

产品 生产 LED显示屏 全彩LED显示屏 led显示屏厂家

万亿数据规模下,火山引擎ByteHouse助力银行日志数据高效分析

字节跳动数据平台

数据库 云原生 Clickhouse 数仓

DDOS的防护方案

德迅云安全杨德俊

吴恩达辞任Landing AI CEO,专注AI投资?数学家斯蒂芬预言哲学家引领AI未来|AI日报

可信AI进展

人工智能

【KDD2024】面向集群整体作业运行变慢的异常检测

阿里云大数据AI技术

人工智能 数据挖掘 阿里云 异常检测 论文

垃圾去无踪,生活更轻松 - StarRocks 如何清理对象存储垃圾数据

Ding_Kai

数据库 StarRocks 湖仓一体

不使用 JS 纯 CSS 获取屏幕宽高

南城FE

CSS 前端

大模型没有“知识围城”

脑极体

AI

SRE 必备知识 - Kafka 探秘之零拷贝技术

巴辉特

kafka zero-copy

淘宝商品详情数据接口(商品价格,商品库存,商品销量,商品优惠券)

tbapi

淘宝商品详情数据接口 淘宝API接口

逻辑删除用户账号合规吗?

江南一点雨

Java 后端

Microsoft Teams电话

cts喜友科技

通信 通讯 云通讯

IT行业怎么定义?需要堡垒机吗?

行云管家

堡垒机 IT行业

官宣:KaiwuDB 开源啦!

KaiwuDB

KaiwuDB 开源啦

探索商品详情API中的重量与体积信息:解锁精准物流管理与用户购物体验的秘密

代码忍者

API 测试 API 策略

FlagEval 8月榜 | 文生视频大模型主观评测结果揭晓,新增6款新发布模型

智源研究院

GalaChain 全面剖析:为 Web3 游戏和娱乐而生的创新区块链

Footprint Analytics

Go 程序如何实现优雅退出?来看看 K8s 是怎么做的——上篇

江湖十年

k8s k8s知识 Go web #k8s Go 面试题 面经 后端 大厂

喜讯!云起无垠创始人沈凯文博士荣列科学家创业先锋榜

云起无垠

ETL数据集成丨实现SQLServer数据库的高效实时数据同步

RestCloud

MySQL 数据库 ETL SqlServer 数据集成

妙用 Batch,StarRocks 存算分离实时性能起飞

Ding_Kai

数据仓库 数据湖 StarRocks

我对管理的理解

老张

团队管理 管理者 人员招聘

如何设计真正的实时数据湖?

tapdata

实时数据湖 数据集处理流程 湖仓一体是什么

资源加载失败重载与前端升级检测方案

yuanyxh

前端 js

从 0 到 1 搭建一个 No Server 的博客能学到什么

yuanyxh

前端 js React Blog

面试官:Leader崩溃Follower不够新怎么办?

王磊

增量垃圾收集器的“重大更改”使 Python 3.13 推迟发布_编程语言_Tim Anderson_InfoQ精选文章