Unity、Compiz、GNOME Shell和KWin对性能的影响评测

心之所在 | 2011/06/04

心之所在:前几日Phoronix.com放了一篇评测文《How Unity, Compiz, GNOME Shell & KWin Affect Performance》,KWin因为在全屏时会临时关掉特效,而GNOME-Shell是关不掉特效的(不想用特效就不用GNOME-Shell,用那个fallback模式开个新桌面),如果同时跑全屏游戏,这差距是少不了的。

正文(有精简):

Twitter关注我的人应该知道上个周末我跑了各种开源、闭源显卡驱动的测试,跟以前的Phoronix测试不一样,这次我是测不同桌面/窗口管理器下各种驱动的表现情况。测试用的包括了Unity(Compiz)、GNOME2(Metacity,无3D特效)、GNOME2(Compiz)、GNOME3(GNOME Shell、Mutter)和KDE(KWin),测试用了开源/闭源的NVIDIA、ATI/AMD Linux 驱动。

测试中遇到了各种图形驱动的bug,像是 Meta Git 主干、来自Linux 3.0/2.6.40最新的Linux 内核 DRM、Ubuntu Natty源中的Compiz,这样是跑不起来的(所以后面开源驱动的评测中没Compiz的份)。

不管是GNOME classic桌面还是Unity上跑Compiz,开源的AMD(R600g和R300g)或Nouveau驱动,结果都是一样悲情。我不是唯一一个遇到这个情况的。这还不是唯一的问题,其它的测试GNOME classic情况下,偶然会出现文本花掉(text corruption)的情况。

http://public.bay.livefilestore.com/y1pYXetd-I8sgJ2a4zyBQfCBanebH6FYr6NEOmujSDg-OHGBIF4ELQikWeHMJyEaaSIH6pAkLCqBJ-qcH1sE8jkbA/d.jpg?psid=1

开源驱动主要是社区维护管理,但就算用官方ATI/AMD Catalyst Linux 驱动还是有问题。在Unity和GNOME Shell(v3.0.2)一起用时,图标经常丢失,其它情况的图形模糊花掉(corruption)发生。

http://public.bay.livefilestore.com/y1plh13PHr-EUvyhzH7tvNR03OlB4kal2FgSadTfaHmTvk0-GLQ-SXTaCwSWJt4vizmgAj-w6Y67FDulBK4Eaw9Lg/f.jpg?psid=1

这个问题在用Ubuntu 11.04的GNOME3 PPA源,和Natty源中的官方fglrx驱动时发生。但就算是Phoronix能拿到的最新保密协定(NDA)的Catalyst驱动,这问题还是存在。此时的GNOME Shell比起桌面更像是俄罗斯方块。

http://public.bay.livefilestore.com/y1plh13PHr-EUvBESZ2SbicZJRdNT0RNV3upXQmhFnswDQK-bjpZb7o7Rq8VO_EobUHpI8LzKd9pQlZneFYT6Hj8w/s.jpg?psid=1

跑遍测试,唯一没遇到明显问题的是NVIDIA的闭源驱动。

测试用的硬件环境:Intel Core i5 2500K “Sandy Bridge” 、 Sapphire Pure Black P67 Hydra 主板, 4GB 内存, 250GB Seagate SATA HDD, 各种显卡。测试显卡是 ATI Radeon HD 5750 和NVIDIA GeForce 9800GT ,为了验证、重现桌面bug还用到了 ATI Radeon X1800XL 和NVIDIA GeForce GT 240 显卡。

软件环境:GNOME 2.32.1, Unity 3.8.10, KDE 4.6.2,  GNOME Shell 3.0.2. 基础系统是 Ubuntu 11.04 x86_64 的 X.Org Server 1.10.1 release, GCC 4.5.2, 以及 EXT4 文件系统。测试闭源驱动,用的是Natty源中的NVIDIA 270.41.06 、 Catalyst 11.4,默认 Linux 2.6.38 内核。测试开源驱动,用的是最新版本,包括5月28号最新的Linux 2.6.40/3.0 内核、Mesa 7.11-devel、 libdrm 、xf86-video-ati 、 xf86-video-nouveau的Git主干版本。

测试用的OpenGL游戏包括Nexuiz, OpenArena, Warsow, World of Padman, Urban Terror, Lightsmark, 和 Unigine Tropics。

Nexuiz v2.5.2

http://public.bay.livefilestore.com/y1pWpjQbZ_i2h3ogvTFt7hClvHuIRKqfclXTCJCxFZJnnytqKuw2Wvy04-VYDUAY182x_SAv37Y8dSB6Y3pWIjnAA/1.png?psid=1

从 Radeon HD 5750 显卡、Catalyst 驱动的数据来看,GNOME Shell(Mutter)是所有测试对象中最慢的。跟我们以前的测试结果一样,Catalyst驱动下,有Compiz的GNOME2.3.2桌面跑的要比没混成效果的Metacity要快。 用了Compiz的GNOME2表现跟用了Compiz的Unity和用了KWin的KDE 4.6桌面差不多。使用Mutter的GNOME Shell少了快一半的帧数。

换用NVIDIA 闭源驱动,GNOME2+Metacity、GNOME2+Compiz、Unity、GNOME Shell+Mutter在全屏Nexuiz游戏的OpenGL中表现近乎一致。而使用KWin的KDE桌面表现则更好,估算超过大概12%这个数值。

开源的R600 驱动,使用Gallium3D,表现最好的是GNOME2+Metacity,KDE的表现降低了大概33%左右,GNOME Shell的表现对比KDE再降低35%。如之前所述,Compiz跑不了开源驱动……

Nouveau驱动的结果,GNOME2+Metacity(好像图没画出来)和KDE的表现一致,GNOME Shell是最慢的桌面,帧数下降10FPS,大概是23%。

OpenArena v0.8.5

http://public.bay.livefilestore.com/y1phRaC0-I8uzlK_EAFoKFGyAh4nUUaJ2vTLq5HZvhPvDeyantQ03Dw-xFTHzZWOHefnMHkoiPk8xmZnTNU-Mix2A/2.png?psid=1

OpenArena的图形精细程度要比之前的Nexuiz低,结果显示Catalyst下面,Metacity和Compiz的表现一模一样。该驱动下面,唯一的变化是GNOME Shell的帧数降低近乎一半。

NVIDIA的闭源驱动,KDE 4.6又是最快的桌面。GNOME Shell+Mutter表现与其它桌面相同。

R600 Gallium3D驱动,GNOME 2.3.2+Metacity依然是最快的,同时Nouveau Gallium3D驱动,KDE是最快的。

Warsow v0.5

http://ow9msq.bay.livefilestore.com/y1p4Tv0wSnSqYO4uyAS5KX_OTaa6XaP13BqeLRCM4ov411myZdQy7KvrIldIFVMGgZw7KjcWOQZnyl1KyBUo4AHSnYtpwTu1Qrw/3.png?psid=1

很有意思,Warsow游戏是Qfusion引擎开发的,测试结果反馈Unity在AMD显卡上跑这游戏帧数急剧降低,追不上GNOME2/KDE的速度。GNOME Shell继续悲情。

NVIDIA的情况跟之前差不多,KDE依然是最快的,但帧数也相差不大。

World of Padman v1.2

http://ow9msq.bay.livefilestore.com/y1pNWXZLoB08UgSa3tbtfG1_HeIeQ9p-lh9f8_zfzmQlB2jUQXrFr9_4ivrkfvDcYYihmcok068K8mQNEfQUplvtUp8Mkm8aNj5/4.png?psid=1

AMD Catalyst驱动下Compiz / Metacity / KWin表现近乎一致,GNOME Shell+Mutter就比较烦,也有图标问题等。

NVIDIA闭源驱动跑这游戏,测试结果KDE不再是跑的最快,是该游戏中跑的最慢的。但是5个对象的帧数都有400+FPS,所以说也不是什么大问题(心之所在:囧……)

开源驱动的表现,有趣的是GNOME Shell+Mutter这次要比KDE+KWin要高。2个开源驱动最快的都是GNOME2.32+Metacity(无混成效果)

需要注意的一点是这次测试的分辨率是1280×1024(普屏分辨率),非面板原生的1920×1080(宽屏分辨率)

Urban Terror v4.1

http://ow9msq.bay.livefilestore.com/y1pCmbbLfrGRoI0cqCMO88E0jZsjC_LlrwluVPgfIU5KZXAWbgMw9jGLIsk9NehUu_EHJiUIJ6OpFA7t32mvS22bOW0PtNWnges/5.png?psid=1

GNOME Shell的21帧完全可以忽略掉,除非用NVIDIA闭源驱动,不然GNOME Shell完全没法跑这游戏。闭源AMD和NVIDIA驱动的测试数据都差不多。R600g驱动下,GNOME 2.32+Metacity的速度要比KDE快1倍。Nouveau Gallium3D驱动+GeForce9显卡,KDE比GNOME2快一点点。

Lightsmark v2008

http://ow9msq.bay.livefilestore.com/y1p898_6LIye-9uTGs21IbwzVXHqpE2cB1bjiWNy9rK8BVToaWxJf3bhZTYHGeAfIFueCF-nxe32Gz9itbEIalCe-lHkZGE5YSd/6.png?psid=1

最近Lightsmark跟Mesa悲剧了。Nouveau Gallium3D完全没法跑,R600g下,还能在GNOME2+Metacity和KDE下跑。你或许注意到R600g下Lightsmark的帧数要比以前在Phoronix文章出现的要高很多(心之所在:我没法注意到啊,图里只有KDE的38帧,没画出来GNOME2的帧数啊,混蛋),原因不是OpenGL驱动的微调。实际上是很多文本直接在游戏里没渲染,黑的一片。闭源Catalyst表现4个都一样,GNOME Shell跑不起来。

闭源NVIDIA驱动,KDE是最快的,GNOME+Metacity成为最慢的。

Unigine Tropics v1.3

http://ow9msq.bay.livefilestore.com/y1pf41l4v5PrqknJD_dFPHZK7lyxu3gi19lUPKhVhXU6XkpD7R-CS48_1aEH77bhC-cC1K_73i3xVlftaqGvRXbXjhG6ECR92gf/7.png?psid=1

虽然最新的Mesa“能跑起来”Unigine引擎,但在支持必要的OpenGL扩展提供基本的支持上,它的表现离可用还有很长一段路,其还不支持所有AMD、NVIDIA闭源驱动提供的特性。

在Radeon HD 5750上跑吃资源的Unigine Tropics demo,GNOME Shell的表现落后,其它差不多。NVIDIA驱动下,KDE的表现稍微领先,但也不太大。

GNOME Shell 3.0就其在各种开源、闭源驱动上的bug和引起的图形性能倒退来说相当糟。因为Ubuntu依赖主要的Compiz作为窗口管理器,所以Unity表现也不意外,但是最近有些倒退导致开源驱动都没法用。另一件有意思的事情是闭源NVIDIA驱动怎么在KDE+KWin下表现最突出,我们之后还会关注KDE 4.7发布后对比其它驱动的表现(KWin 4.7的变动),包括临时关闭/禁用混成特效的情况。

via phoronix.com

    泰达希尔-德鲁伊
    Tags: , , , ,

    21 FEEDBACKS

    1. uli

      话说kwin全屏时挂起特效问题多多啊……

    2. 心之所在

      @uli 是多,常见flash刷弹幕闪文字,flash全屏时普通窗口在前面。

    3. 说是GNOME Shell也在做2D了。

    4. 心之所在

      @csslayer 等2d版做好,kde4.8估计都要来了

    5. nemo

      我的问题: 我用 nvidia闭源驱动 270以上的版本, kde4.6.2 会极易出现X卡死问题. 比如把窗口拖到屏幕边缘或者某些特效. 用开源驱动,nouveau kerne版本2.6.39. mplayer或者vlc 在切换到全屏播放的时候X卡死. 现在只能降到闭源260的版本,不会出现问题. 难道文章中用闭源270版本时不会出现 X卡死bug?

    6. KDE挂起特效和Compiz、Mutter比……这其实不算太公平……

    7. @右京样一 不过有时候比metacity还快……

    8. @csslayer 挂起了之后,跟metacity本来就差不多吧……我看大多数时候挂起混成的KDE都是最快的。KDE还是很威武的,嗯……

    9. 路過,說一下個人的大膽想法,IKDE是不是可以考慮把KDECN并掉……

    10. 心之所在

      @nemo 是xorg的问题,降级xorg https://bbs.archlinux.org/viewtopic.php?id=116544 拖动窗口到边缘,然后拉伸窗口,必死。

    11. 心之所在

      @Yeking ……不是同一批人在搞,不好办,而且也没法保证ikde的以后会怎么样……

    12. 心之所在

      @右京样一 是啊,每次我想用openbox那类轻量、没混成、快速的窗口管理器时,我转头一想,跟关了特效的kwin有毛的区别。

    13. @Yeking 吾,话说kde-china那边邮件列表有提过一次,不过我还是觉得这种blog形式比较自由,想骂就骂,想写啥写啥的感觉很爽。

    14. zhangyou

      没有评测过,只是凭感觉讲的话,kwin确实比compiz慢了一点,作为KDE粉丝还是希望将来的版本可以更快一些。

    15. uli

      @心之所在 类似,我也是用nvidia闭源驱动,但遇到的问题是使用oxygen-transparent时,拉伸窗口,立即死机。也是这个问题吗?以前曾经使用oxygen-transparent时没问题。用其他主题也没问题……

    16. 心之所在

      @zhangyou 凭感觉我也觉得Compiz比KWin流畅,尤其是满屏窗口的时候(15+窗口)KDE时卡时流畅。@uli oxygen-transparent不清楚,我没怎么用,反正我是觉得Linux桌面特脆弱,以前感觉图形界面出问题顶多死个x,大不了还有alt+f1,现在是直接死机。我记忆常有错乱,忘记什么情况,我记得前段时间,我这KDE有个问题,忘了是不是就是这个,也是突然整个画面卡住,但其实过个几秒鼠标又能动(当然窗口还是不能动),已经忘了后来是怎么处理的了。

    17. @心之所在 我升级显卡之后就看不出compiz比kwin流畅了,就觉得compiz画面撕裂更严重,即使compiz和kwin都关掉垂直同步。

    18. 日月雨林

      我这里 ATI 官方的驱动对字体的渲染有问题,开源驱动下的KDE 桌面字体锐利美观,官方驱动下的KDE桌面字体粗犷发虚。但是开源驱动的fps比较悲剧,发热量也大,官方的比较好点。

    19. @日月雨林 您啥显卡?试试看不要用次像素渲染。

    20. 日月雨林

      @右京样一 呃…… ,我用的是 ATI Mobile HD 4570的显卡(我的上个帖子中也有说明阿)。我用KDE 从来都没有启用过次像素平滑渲染。默认的开源驱动字体处理很不错,一用官方都显卡驱动字体就变得发虚。

    21. 江南胡杨

      呼,偶遇心之所在

    Leave a Reply

    Your email address will not be published. Required fields are marked *

    Note: Commenter is allowed to use '@User+blank' to automatically notify your reply to other commenter. e.g, if ABC is one of commenter of this post, then write '@ABC '(exclude ') will automatically send your comment to ABC. Using '@all ' to notify all previous commenters. Be sure that the value of User should exactly match with commenter's name (case sensitive).

    This site uses Akismet to reduce spam. Learn how your comment data is processed.