增量垃圾回收效能問題待解,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重新引入增量垃圾回收功能。

Popular articles
Across 6 Cities: HUIDU Invites You to 8 World Cup Parties Redefining High-Value Social Networking
HUIDU Focus
Super PAC Raises $48 Million: Sports Betting Forces Ramp Up Political Push
Regulation
Vietnam's tightening online gaming policy creates new market opportunities
Southeast Asia
Kazakhstan plans to penalise online casino promotions
Regulation
GAT Expo Puerto Rico Will Pulse with the New Era of Gaming in the Caribbean
Marketing
JILI Partners with Cricket Legend AB de Villiers (ABD) to Launch Exclusive Branded Game Series 100% 11
Sports Game
B2B Tech Infrastructure Gains Momentum in Philippine Gaming Sector
Southeast Asia
Vietnam’s Controlled Gaming Shift Gains Ground, But Domestic Demand Still Lags
Southeast Asia
Indiana online casino bill stalls in House committee
Regulation
British gambling levy rates confirmed for each vertical
Regulation
Are you ready to maximize your earnings? Try ProPush.me Constructor!
Marketing
1spin4win grows its Latin American presence by partnering with Fortuna Juegos
Online Game
New Jersey July Gambling Revenue Hits $606M, Sweeps Casinos Banned
Regulation
PropellerAds Shared a New iGaming Case Study: 97,674 Installs and 12,701 Deposits in 3 Months
Marketing
Online gambling, crypto pose ongoing money laundering risks in Philippines, analyst says
Southeast Asia
Home
Game
Cooperation
Find
My