程式忍者PGNinja

Hacker News

記憶體分配庫 jemalloc 釋出 5.4.0,清償大量技術債

· 廣泛被系統與應用程式使用的記憶體分配庫 jemalloc 推出新版,包含超過 160 次提交的重構、修錯與可攜性改進。

jemalloc 是一套高效能的記憶體分配庫,被許多程式語言的執行環境與系統軟體拿來管理程式執行時的記憶體配置,藉此提升效能、減少記憶體碎片。這次釋出的 5.4.0 版,官方說明重點放在「技術債清理」,包含重構、修錯、測試覆蓋率改善與選項清理,另外也加強了跨平台的可攜性。

這個版本新增了 pinned 記憶體支援,透過新的 EXTENT_ALLOC_FLAG_PINNED 標記,讓自訂的記憶體配置鉤子可以標示不可回收的映射(例如 HugeTLB 大分頁),並提供對應的統計介面追蹤這類記憶體的使用量;也恢復了透過 thread.arena 手動選擇 per-CPU 競技場的能力,同時把原本要在執行期設定的 C++ 選項改成編譯期旗標,讓編譯器能做進一步最佳化。

這次更新同時移除了七個舊有的 tcache 相關控制選項,屬於不相容的重大變更;也修掉多個值得留意的錯誤,包括 free() 與記憶體回收操作會意外覆蓋 errno、大小類別計算的數值溢位檢查、以及競技場重置期間可能出現的死結,這些都是長期使用者在意的穩定性問題。

對正在學程式的孩子與家長來說,這則新聞比較偏系統軟體與底層工程面,不容易直接拿來練習,但可以藉此了解:程式語言背後其實還有一層「記憶體管理」在默默運作,寫程式時看似簡單的「配置變數」,底層是由像 jemalloc 這樣的專案在處理。

開源系統軟體開發工具

其他新聞