上周我们报道过 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 对这个问题足够关心,将会及时提供修补建议。
相关主题 |