GNOME Shell 內存泄露問題正在修復中 原因竟是忘記進行垃圾回收
GNOME Shell 被發現存在內存泄露的問題,現在官方開發團隊已確認導致這個問題的原因 —— 忘記進行垃圾回收…… GNOME 稱目前正在修復該問題。“觸發垃圾回收能夠將 GNOME Shell 使用的內存量減少到正常水平” GNOME 開發者花了大約一周的時間來定位問題的根源,不過內存泄漏的原因(看起來)已經確定。
GNOME 開發者 Georges Basile Stavracas 在仔細研究他在 GitLab 上關于 bug 的測試、檢查和調查結果的過程中,似乎發現了導致這個 bug 的原因,“……有些問題伴隨著垃圾回收器一起出現。”
Georges Basile Stavracas 表示,在他放棄尋找內存泄漏原因的所有希望之后,發現了一個非常有趣的行為,并且可以重現這個過程。他推斷只有一系列相互依賴的對象的根對象被回收后,才能最終確定它的子對象/依賴對象會被標記為 GC 狀態。
通過運行 GJS(GNOME 的 JavaScript 綁定) 的垃圾回收器,Stavracas 稱能夠減少大約 250MB 的內存使用量(GNOME Shell 在啟動時的消耗)。
不過目前關于這個 bug 的補丁尚未發布,依舊處于修復中的狀態。所以不能確定下個月發布的 18.04 LTS 是否包含這個 bug 的修復,如果沒有,只能期待后續的更新。
而 Ubuntu 17.10 和 Ubuntu 18.04 LTS 在 Launchpad 上關于 GNOME Shell 的內存泄露問題已被標記為“關鍵”和“高”優先級級別,這表明 Ubuntu 對這個問題足夠關心,將會及時提供修補建議。