Meta*宣布恢復jemalloc記憶體管理庫的開發,該庫的程式碼庫已於去年6月進入歸檔模式。 jemalloc函式庫提供了一種malloc函數的替代實現,針對減少碎片和提升多處理器系統的效能進行了最佳化。
Meta 意識到在其基礎設施中使用 jemalloc 的優勢,並決定重新啟動該庫的程式碼開發工作,以降低維護成本、實現程式碼庫現代化、消除技術債務,並使分配器適應新的工作負載和當前的硬體。該函式庫將繼續作為開源專案進行開發,與社群協作,並歡迎第三方貢獻。
jemalloc 庫由 Jason Evans 於 2005 年為 FreeBSD 7.0 開發,之後移植到 NetBSD 並整合到 Firefox 中。 2009 年,jemalloc 的作者 Jason Evans 加入 Facebook,該庫被用於內部專案。 2017 年,Jason 離開 Facebook,該庫的開發工作由 Facebook 的剩餘團隊繼續進行。在將庫更名為 Meta 之後,公司的優先事項發生了變化,庫的開發停滯不前,開發工作完全專注於內部需求,而公開可用的程式碼庫也隨著時間的推移而逐漸退化。為了維持公開可用函式庫的運行,需要進行大量的重構,但 Jason Evans 當時並不願意投入時間進行這項工作,因此在 10 個月前將程式碼庫轉為歸檔模式。
Facebook 已製定了一系列在專案重新啟動後實施的計劃,其中包括:
- 減少累積的技術債務,重構和清理程式碼庫,並改進庫以保持效率、可靠性和易用性。
- 持續開發 HPA(大頁分配器),透過更優化地利用大記憶體頁(透明大頁)來優化 CPU 資源消耗。
- 為提高記憶體效率,我們進行了多項改進,包括改進結構打包、快取和清理已釋放的記憶體區塊。
- 針對 AArch64 (ARM64) 架構增加了最佳化。
來源: opennet.ru
