此前我们曾报道过 GNOME Shell 被发现存在内存泄露的问题,官方开发团队也已确认导致这个问题的原因。现在,GNOME 开发者表示已修复了该漏洞,并会在下次更新中释出修复的版本。
目前这些变更还在 Git 中,将会随 GNOME 3.30 的发布一起释出,也可能会将修复补丁应用到旧版本 3.28 上。
著名的 GNOME 开发者 Georges Stavracas 提供关于这次问题的修复,并且证实了这个问题源于 GJS —— GNOME 的 JavaScript 组件,它的垃圾回收进程本应启动,但是并没有。
请注意 x=42和 x=71 时突然出现的内存丢失
修复之后,现在只要一个对象被标记为销毁,就会触发 GJS 的垃圾回收进程。所以主要的内存泄露问题已被解决,而多余的垃圾回收周期应该不会对系统性能造成太大影响。
开发者表示编写 pr 时没有考虑到要将修复补丁移植到 GNOME 3.28,所以这只能在以后再进行,使用 GNOME 3.28 的用户可以选择观望或者升级。这次内存泄露问题的修复,还为 GNOME 带来了性能方面的改进。
有关修复内存泄漏问题的更多细节请查看 Georges 的博客。
转自 https://www.oschina.net/news/95458/gnome-shell-memory-leak-fix