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).