Python 3.13 发布推迟:增量垃圾收集器引发的“蝴蝶效应”

Python 3.13 的正式发布日期被推迟了一周,原因是核心开发团队决定移除新引入的增量垃圾收集器(GC)。这一决定源于该特性在实际应用中引发的性能问题,引发了关于 Python 开发团队在平衡新功能和稳定性方面的争议。

最初,增量 GC 的引入是为了提高Python 的性能,尤其是减少程序运行时的暂停时间。该特性由微软 Faster CPython 团队的技术负责人 Mark Shannon 提出,他指出传统的 GC 效率低下,会导致程序出现长时间的暂停,影响用户体验。增量 GC 的目标是通过更频繁地进行小规模的垃圾回收,来避免长时间的暂停,从而提高程序的整体性能。

然而,在实际应用中,增量 GC 并没有带来预期的性能提升,反而导致了一些程序的运行速度变慢。例如,Python 团队使用的文档工具 Sphinx 在使用 Python 3.13 时,构建时间显著增加。这一问题在 CPython 文档的构建过程中尤为明显,构建时间从 45.5 秒增加到 62.7 秒。

CPython 核心开发人员 Thomas Wouters 在分析了增量 GC 的影响后,认为该特性在常见情况下开销过大,而且还存在一些尚未解决的问题。他指出,虽然移除增量 GC 在发布临近时是一项“重大更改”,但与继续解决新代码中出现的各种问题相比,回滚到已知的旧代码风险更小。

这一决定引发了开发人员的争议。一些开发人员认为,移除增量 GC 是一个谨慎的决定,因为该特性尚未经过充分的测试,其影响也尚未完全评估。他们认为,给增量 GC更多时间在 3.14 分支中成熟是一个明智的选择。

而另一些开发人员则认为,移除增量 GC 可能会导致 Python 3.13 的性能下降,特别是对于某些程序而言。他们指出,增量 GC 的引入虽然存在一些问题,但它仍然是一个有潜力的特性,需要更多的时间进行优化和完善。

这次事件反映了 Python 开发团队在平衡新功能和稳定性方面所面临的挑战。 在快速发展的软件开发领域,引入新功能可以带来新的可能性,但同时也可能带来未知的风险。如何权衡新功能带来的收益和风险,是一个需要谨慎考虑的问题。

此次事件也引发了关于软件开发中“试用发布”模式的思考。 增量 GC 在发布候选版本中被发现存在问题,这表明,在软件开发过程中,需要充分利用试用发布模式,让更多用户参与到测试和反馈中,以便更早地发现问题,避免在正式发布后出现重大问题。

Python 3.13 的发布推迟,虽然会给一些开发者带来不便,但也体现了 Python 开发团队对软件质量和稳定性的重视。 相信经过这次事件,Python 开发团队会更加谨慎地评估新功能,并更加重视用户的反馈,以确保 Python 的稳定性和可持续发展。


>>> Read more <<<

Views: 0

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注