自从我安装了 11.10 以来,我一直在关注每周出现的更新,看看它们如何影响 Compiz 的性能和资源使用情况(目前我正在测试 12.04 和 14.04)。据我所知,CPU 和内存使用率已经降低(特别是内存)。我正在比较安装 12.04/14.04 而不进行任何更新,然后应用所有更新,并比较 12.04 和 14.04。例如,nautilus 使用的内存不到 35 MB(对我来说,在几个版本之前用它进行同样的活动时,它使用的内存在 70 MB 到 150 MB 之间)。
其他进程也得到了某种优化,将我的总内存使用量从大约 850 MB 降低到了 610 MB(我还使用 Apache、MySQL 等服务),但经过这么长时间,唯一几乎保持不变的是 Compiz。它仍然使用超过 100MB 的内存来启动。仅使用 Unity 桌面,没有运行其他程序,它(现在)占用了 133 MB。我可以使用哪些选项来降低内存占用量,而不会影响 Unity 的稳定性(例如,从 Compiz 配置中删除 OpenGL 插件是一个坏主意)。
可以做哪些优化来降低 Compiz 的内存使用量?
注意 - 我已经安装了 Compiz 配置设置管理器 (CCSM)。
答案1
解决 compiz 内存泄漏的方法是:
sudo kill -HUP <compiz_process_id>
这不是一个很好的解决方案,但是它可以释放泄漏的内存而无需完全终止进程。
答案2
在我看来,降低 Compiz 内存使用率相当困难。我建议的最好办法是降低 OpenGL 插件中的纹理质量,但据我所知,这不会带来太大改变。
compiz 内存增加的另一个原因可能是内存泄漏。这似乎有时是由指示器触发的,但也可能来自其他来源(尚不确定)。
我的解决方案是定期重新启动 Unity,使用包含以下内容的简单脚本:
#kill compiz completely, including all child processes, freeing it's memory:
killall -9 compiz &
#run unity and give you back a free terminal.
unity & disown
我知道这不是最好的答案,所以我自己关注这个问题,看看是否有人有更好的建议。
答案3
我知道这是一篇旧帖子,但 Gus 的回答对我有帮助,我想补充一下。这是我所做的(在 Ubuntu 12.04 上):
- Alt+ F2(运行应用程序)
- 计划任务
- 新的循环任务
killall compiz -HUP
- 每天 00:00
现在 compiz 将会每晚自动重启,而不需要知道进程 id。
我的问题是,如果我将屏幕锁定几天,则需要大约 30 秒才能打开屏幕锁,并且 compiz 内存使用量约为 1000 MB。