增量垃圾回收性能问题待解,Python 3.13正式版暂不加入
支付動態 · 2024-10-07

由于性能因素,Python 3.13暂时不加入原订添加的增量垃圾回收(Incremental GC)功能,并维持原有设置以维持版本稳定性,待改进并收集更多回馈后于Python 3.14回归

Python 3.13的增量垃圾回收(Incremental GC)功能存在性能问题,导致包括Sphinx等多种工具运作性能下降。内核开发者在讨论了增量垃圾回收阈值调整,以及退回增量垃圾回收功能的可能性后,决定暂时不在Python 3.13加入该功能,并且维持现有阈值设置,确保性能稳定。增量垃圾回收预计会在改进并且收集更多开发者回馈后,添加到Python 3.14中。

垃圾回收是编程语言中一项内存管理机制,用于自动清理不再使用的对象,释放内存空间。原本开发团队想在Python 3.13的时候添加增量垃圾回收功能,目的是优化内存管理,减少应用程序在运行时,因为垃圾回收而发生的卡顿,特别是针对大型应用程序或是需要高回应性的系统,以达到更加平滑顺畅的性能表现。

传统垃圾回收机制会在一定时间点暂停程序部分运作,清理未使用的内存,而该过程可能导致应用程序卡顿,而增量垃圾回收则是将垃圾回收过程拆分成多个较小的步骤,逐步进行清理,进而缩短每次停顿的时间,使得应用程序的回应性更好。

Python垃圾回收采用分代回收策略,主要分为三个世代,第0代、第1代和第2代。根据对程序内存分配行为的观察,通常很快变成垃圾的新对象被标为第0代,第1代则是由第0代经过垃圾回收后仍存活的对象晋升,当第1代内存对象触发垃圾回收,却还依然存活的对象,就会被标记为第2代。

而原本Python 3.13为了配合增量垃圾回收功能,第0代的阈值从700增加到了2,000,以降低频繁垃圾回收带来的额外开销。不过,增量垃圾回收的性能在测试阶段就受到开发者的注意,尤其是像Sphinx这类大型应用程序,在Python 3.13上甚至出现接近40%的性能下降。

经过Python内核开发者的讨论,他们认为增量垃圾回收虽然普遍可以减少垃圾回收的卡顿时间,提升应用程序的回应性,但是在部分情境下却反而会增加额外的内存和计算成本开销,以至于无法达到预期的性能提升效果。

在核心开发者讨论各种方案后取得共识,认为增量垃圾回收功能尚未成熟,阈值的调整需要更广泛的场景测试,因此最终从Python 3.13正式版移除增量垃圾回收,并维持原本设置确保版本的稳定性。开发团队将在收集更多回馈,厘清不同场景应用的性能表现后,在Python 3.14重新引入增量垃圾回收功能。

热门文章
密西西比州众议院委员会推进提议增加赌场税的法案
游戏风向
斯里兰卡博弈产业大转型,官方:剑指南亚拉斯维加斯
游戏风向
张侨伟参议员排除全面禁止,敦促菲律宾规范网络赌博
东南亚资讯
JILI 宣布与全球板球传奇 AB de Villiers(ABD)达成重磅战略合作
体育游戏
巴西拟将博彩税率提高至24% 税收将用于社保和医疗领域
游戏风向
亚洲游戏市场观察:15大市场热门游戏与用户趋势
线上游戏
新泽西州7月博彩收入创6.06亿美元新高,颁布禁令
游戏风向
Zenith携手HUIDU,冠名赞助2026年世界杯嘉年华官方巡回活动
线上游戏
印度最高法院受理公益诉讼,要求全国禁封“伪装”成社交游戏的赌博平台
游戏风向
英国确认各垂直行业的赌博税税率
游戏风向
越南在线博彩业政策收紧 催生市场新机遇
东南亚资讯
2027 Global Game Connect(GGC)斯里兰卡招商全面开启!业务人脉尽在掌握!
灰度头条
超级PAC筹资4800万美元:体育博彩势力加码
游戏风向
亚洲顶尖游戏供应商多寶游戏 DB GAMING,开创亚洲市场的唯一首选
广告营销
菲律宾博彩技术赛道迎来新变局,B2B 供应模式加速渗透
东南亚资讯
首页
游戏
合作
发现
我的