背景
首先,这不是一个关于观点的问题。我假设我们讨论的是 Unity 3D,并且是在一台具有良好图形配置的计算机上。对于“桌面环境”,我假设的是 DE 最普遍接受的定义。
我看到过很多比较,很多人都说 Unity 是 Ubuntu 上最慢的桌面环境(与 Gnome、XFCE、LXDE 等其他桌面环境相比)。我不知道人们是否考虑过 KDE。
问题
- 为什么 Unity 与其他桌面环境相比速度较慢? 是因为 Unity 使用了高图形还是其他原因?(我不知道 Unity 中是什么原因导致其运行缓慢。)
- 为了使 Unity 运行更快/提高其性能,可以/正在对它进行哪些更改?
答案1
答案在很大程度上取决于导致“缓慢”感觉或更低 FPS 的 3 个主要因素:
- Ubuntu 版本(已更新,而不是保留其发布时的样子)
- 显卡(Ati、Intel、Nvidia)
- 驱动程序版本(专有、开源、实际版本)
我将解释每一点:
Ubuntu 版本
对于 Ubuntu 版本,众所周知,使用 Unity 11.10 会很糟糕。在大多数情况下,甚至连打开 Gedit 或 Nautilus 都很糟糕。尝试在 OpenGL 中或通过 Wine 使用 DirectX 或 OpenGL 玩游戏会导致 FPS 低于正常水平,甚至与任何其他 DE 相比也是如此。这种情况在 12.04 中发生了巨大变化,然后在 12.10 中再次发生,FPS 计数开始上升。
由于最新版本是 12.10,我应该提到,对于某些人来说,使用未升级的 12.10 无法解决 Compiz 和 Unity 发布后一个月左右修复的几个关键问题。因此,任何 12.10 用户都必须升级才能获得这些好处。这是因为当想到 FPS 和 OpenGL 性能时,讨论的两个最重要的部分是 Unity 和 Compiz(就性能影响而言,Compiz 是最重要的)。
Compiz 项目在 0.9.8 系列中获得的好处和增强以及0.9.9 系列Unity 正在7.x 系列确实令人印象深刻。
Phoronix 和我自己的一些测试表明,对于 Nvidia 显卡(我实际上能做的测试只有 Nvidia 显卡),性能有所提高。而且不只是 3 或 4 FPS,而是大约 20 到 70 FPS,具体取决于显卡和驱动程序。
这很重要,因为根据用户使用的 Ubuntu 版本,它还将取决于可用的 Compiz 和 Unity 版本以及随之而来的性能成本。
由于 Unity 需要 Compiz,因此这将是导致 FPS 计数低的最大原因,但与以前或至少 2 个版本相比,情况有所改善。在 Wine 或开源游戏中玩视频游戏时运行 Compiz 的基准测试实用程序,在 12.10 中获得了非常好的 FPS,当我使用最新的 313.xx 系列 Nvidia 测试 13.04 时,FPS 甚至更高。
值得注意的是,视频性能是 13.04 中要处理的重点之一(在很大程度上是 12.10 和 12.04 中要处理的重点),因为 Ubuntu 对其用户和 Steam (Valve) 做出了承诺。不仅 Ubuntu 和 Valve 正在努力解决这个问题,而且 Nvidia 和 Intel 也加入了进来,推出了许多更新,一次又一次地提高了 FPS 计数。如果您关注 3.7 和 3.8 内核的改进,您会看到其中的一些改进。
显卡和驱动程序版本
众所周知,性能方面,Nvidia 处于领先地位,其次是 Intel 和 Ati(不要将这一点与易用性混淆,因为 Intel 在这方面要好得多)。最新的 Nvidia 驱动程序(例如306.64,310.19和313.09) 都为 Unity 带来了 OpenGL 性能改进。特别是用于进一步改进 Compiz。
现在,不仅 Nvidia 正在为 Compiz/Unity 做大量工作。Intel 也在努力(非常努力)开发 Mesa 的几个关键功能,这将全面提高所有 Intel 显卡的性能,特别是 965、2000 HD、3000 HD 和 4000 HD 系列。最后,Ati/AMD 也已经进行了几次更新,将修复 Compiz 的许多错误和问题。
因此一般来说,拥有最新的驱动程序将会提高性能,但拥有 Nvidia 卡将使性能提升更多,其次是 Intel 和 Ati。
阅读完所有这些内容后,正在进行哪些改变以提高整体性能,以下是其中一些:
Nvidia 从几个版本开始就致力于提高 Unity 的性能,与旧版本相比,性能总体提高了 50% 以上
英特尔与 Mesa 合作提高 Unity 性能
Ubuntu 和 Valve 正在合作提高 Compiz 和 Unity 的性能
正如在 Launchpad 中看到的,Compiz 进行了一些修复,以提高响应能力和整体性能(包括内存和 CPU 使用率)
从 Launchpad 中可以看出,Unity 已经针对最终用户遇到的大多数问题进行了修复
Compiz 使用的内存量比一年前降低了 50% 以上。
与一年前使用的版本相比,Unity 感觉更快、更轻便。
有些工作是由萨姆斯·斯皮尔斯伯里最新的 Compiz 和 Unity 将解决 Unity 的一些常见问题。
内核版本 3.7 和 3.8 将带来视频方面的总体改进
因此,正如您所看到的,人们正在做大量工作来改进 Unity 和 Compiz。公平地说,将 Unity 与 Xfce 或 Lxde 进行比较是不公平的。这就像将自行车与汽车进行比较。两者都可以做得更好。例如,Compiz 提供了一些 Xfce 或 Lxde 所没有的非常巧妙的效果,尽管我们大多数人都不使用它们,但它们是一种选择(就像汽车内的点烟器一样)。
同样,将 KDE、Gnome3 和任何其他 DE 与低端 DE 进行比较也是如此。它们之所以低端是有原因的。它们倾向于避免进行会影响性能的重大更改,而高端 DE 则会尝试添加可能在开始时占用更多资源的功能。例如,使用小部件、将窗口旋转到任何可能的角度、使用模糊效果隐藏背景或使用动画背景。有些桌面提供某些用户喜欢的选项,而其他 DE 则不需要或不使用这些选项,因为它们更面向低端系统。
考虑到这一点,任何测试过 KDE 4.0 版的人都知道,到最新的 4.9 版为止,它已经获得了巨大的改进。确实非常巨大。任何测试过 Gnome 3.0 版到最新 3.8 版的人都知道,它的性能发生了巨大的变化,任何测试过 Unity 3.x 版到 6.x 版(以及即将推出的 7.x 版)的人都知道,它的性能有了多大的提升。例如,我很怀念 gnome2,但在某些情况下,我无法使用 gnome2,因为 Unity 更友好,更快速地帮助我实现其中一些情况。
那么我可以给出什么建议来提高性能呢?
安装Compiz 配置设置管理器(ccsm)
并使用 OpenGL 插件:
其中一些选项将提高性能,其他一些选项则需要避免视频问题。如果有人发现有关此问题,我会很高兴他们编辑此答案以在此处包含指向它的链接。我现在找不到它,但我知道有一个答案谈到了这一点。
其他就是更新驱动程序,如果可能的话,使用 Nvidia。除此之外,等待 13.04 是值得的。
对于一些评论,以下是来自 Phoronix 的基准测试,用于检查 Unity 在 11.04、12.04、13.04 和 13.10 上的表现: