2012 Desktop Shootout

I didn’t blog yesterday. I’m sorry. I know the internets were in a frenzy arguing over whether I quit or gave up or what have you, but I didn’t. I was just busy doing boring stuff that wasn’t worth blogging about.

To make it up to all of my faithful readers, I have a special feature today:

My shitty graphics aside, I’ve been wanting to do a feature for a while about popular desktops and their startup speed vs resource consumption, but I’ve been so busy with fixing bugs that I had no time. Now that most of the bugs have been fixed, however, I have plenty of time for benchmarking. The following environments were tested on Ubuntu 12.04 on my i7 3500 with 16GB RAM using their Ubuntu packages:

  • KDE Plasma (4.8.5)
  • GNOME Shell (3.4.1)
  • XFCE (4.8.0.3)
  • Unity (5.16.0)
  • Unity 2D (5.12.0)

My testing procedure was not 100% scientific or perfect, but the process went as follows:

  1. Log in to a desktop environment with a completely clean config (first run)
  2. Complete desktop’s first run wizard (if present), ensure that any first-run activities complete
  3. Determine fastest way to run desktop’s own terminal (konsole for kde, gnome-terminal for gnome/unity, xfce-terminal for xfce, terminology for enlightenment)
  4. Reboot
  5. Log in to same desktop environment
  6. Open terminal
  7. Print uptime (type !c<tab> since I use a modern shell with history completion)
  8. Print mem stats
  9. Take screenshot
  10. Repeat

The point here is to see which desktop can most speedily achieve a terminal from a default config; we’re all Linux users, and terminals are the bread and butter of the community.

Now it’s worth noting that, due to a number of factors, automatic logins here do not work, so I had to type my login and password each time as well as manually select the desktop session to launch. I did redo any tests where I failed to type either my username or password correctly on the first try, as well as any tests where I felt that I was too slow in selecting the session to launch. I estimate that no more than 1.0-1.5 seconds of variance were introduced by this process, which, based on my results, is not worth worrying about.

Also, I had something screwed up with my GTK3 theme somehow, so ignore the strange window borders.

The exposition is over, so onward to the (surprising) results! This list is in order of slowest load time to fastest, and the time in seconds is accompanied by the total memory usage in megabytes:

KDE Plasma: 57.76s, 1390MB

I don’t think this is a surprise to anyone. With its sizable memory usage and considerable loading time (though the load screen was very tasteful), KDE came in dead last. It also bombarded me with popup notifications in the bottom right corner. Method to launch Konsole was alt+f2, then typing ‘konsole’.

Unity: 56.98s, 1091MB

Also not a big surprise, Unity is about as slow as KDE if you take into account the 1 second variance that I mentioned previously. Not a great showing in startup time or memory usage from the most widely used Linux desktop. Method to launch gnome-terminal was alt+f2, then typing ‘gnome-terminal’.

GNOME Shell: 52.71s, 955MB

I threw GNOME shell in there because I know that the community there is a bit disgruntled about always being represented as Unity. Congratulations guys, you beat out Unity by a few seconds and quite a bit of memory! Downside here is that this was the only desktop environment from which I was unable to reboot my machine using a GUI. Sarcastic slow-clap for removing a necessary feature. Second round of slow clapping for being the only desktop to create popups (seen at bottom) with no timeout. Method to launch gnome-terminal was alt+f2, then typing ‘gnome-terminal’.

XFCE4: 50.42s, 929MB

We’re starting to get noticeably faster here. XFCE loaded fast enough that I didn’t feel like I could take a coffee break during the process, and it didn’t spam me with popups either. It also was one of only two desktops to provide a terminal launcher by default  (seen at bottom). Unfortunately, I was testing the specific terminal for each desktop, and the provided launcher was launching Terminator (which I had previously installed while tracking down an E17 ticket about it). I was feeling generous, and I was pleased that they provided a terminal launcher at all, so I changed the launcher to launch xfce4-terminal instead.

Biggest disappointment of this test is that XFCE is the only desktop tested which does not provide or integrate its own screenshot utility by default. The utility (seen in screenshot) must be manually installed as a separate package, and is not automatically used with the Print Screen key (my preferred screenshot method which I used for every other test).

GNOME Classic: 50.34s, 940MB

I included all possible sessions provided by the desktop environment for completeness, so here we have GNOME Classic with a pretty respectable time and footprint. Interestingly enough, Classic allows you to reboot your machine from the menu whereas Shell does not. Consistency, who needs it! Method to launch gnome-terminal was alt+f2, then typing ‘gnome-terminal’.

Unity 2D: 50.22s, 1086MB

Despite the resource usage being nearly identical, the 2D version of Unity started up noticeably faster. Method to launch gnome-terminal was alt+f2, then typing ‘gnome-terminal’.

E17: 48.13s, 936MB

Clocking in leaner and faster than other desktops, the champ, E17! With a massive…2 second lead over GNOME Classic…and a colossal…4MB over…GNOME Classic…what the hell? This was actually really surprising to see, considering how often I brag about E17 being so much faster and smaller than everything else. True, GNOME Classic doesn’t provide any launcher, pager, gadgets, etc. like E17, but it still gets to a terminal almost as fast, which is the whole idea.  E17 was also the only desktop besides XFCE to provide a terminal launcher (for terminology, seen at bottom), so launching was simple here.

GNOME Classic (No Effects): 44.79s, 911MB

W-w-w-w-w-w-w-whaaaaaaaaaaaaaaaaaaaaaaaaat?! This isn’t how my post wasn’t supposed to end! GNOME Classic with no effects starts up blazingly fast, crushing E17 in both memory size and speed. I’ll admit that I was skeptical about these results, but repeated testing proved that it’s not a fluke; GNOME without effects is an impressively quick-loading barebones desktop environment, so kudos to the developers here! Method to launch gnome-terminal was alt+f2, then typing ‘gnome-terminal’.

The End

Juuust kidding. You didn’t really think I, the E17 release manager, would accept defeat so easily, did you? Of course not. If I’m going to be defeated, I’ll at least do it on equal footing, possibly with a good cry afterward! You see, dear readers, what I failed to consider in my initial E17 test was that I built the entire EFL stack, including E17, with optimizations disabled and debug info compiled in. This means CFLAGS were only “-O0 -g”: no -march, no -mtune, nothing else. Furthermore, I usually build with Xlib instead of XCB, and E17 can run using either based on how its libraries get packaged. So let’s back up and get some more normal results using some modest CFLAGS (-O2 and -march=native) and software XCB rendering:

E17: 47.10s, 920MB

This was actually a big surprise for us at the office; we were expecting a much more dramatic speed increase. The changes did manage to knock off 15MB of memory and about 1 second, but it still isn’t enough to compete with the previous GNOME entry. For shame. Actually, I attribute (blame) this loss to three things:

  • EFM takes around 2.0 seconds to load the desktop, during which it blocks as it loads icons, which I hope to see improved for E18
  • Terminology takes FOREVER to start up the first time due to library resolution
  • GNOME has a tremendous advantage in load times, despite gnome-terminal being a far slower terminal, because all its libraries are already loaded from my session manager, LightDM, which uses GTK

But I’m not bitter about it. GNOME has obviously put a lot of effort into speeding up load times, and they deserve the rewards that come with their hard work. Congratulations to them, and I hope they enjoy the knowledge that they have the desktop which, using a default profile, is the fastest desktop to be able to access a terminal. They also have the lowest memory footprint under these conditions. Great job!

However! It’s important to remember that there’s always something better. And that something is, in fact, my own E17 profile.

E17RM: 44.36s, 875MB

Hah! Take that! I even handicapped my cheating self by using the right click menu (“favorites” menu) to open my terminal instead of using a keybind as I usually do. To those who would argue my title as the lightweight champion of fast terminal opening, this is my real desktop, and I use it every day. The one I use at home is identical except for RSS and weather gadgets next to the clock. Using a terminal for file management means I keep the fileman module unloaded at all times, and I have no need for app launchers since I have the favorites menu and evry.

So what have we learned? Firstly, I’m awesome at breaking my own rules. Second, don’t do benchmarks with code compiled for debugging. Third, GNOME can start up really fast.

Suddenly, a challenger appears!

TWM: 29.70s, 711MB

TWM is the winner here in every category by a digital mile. The damn thing is so fast that it even makes LightDM and my entire system load faster just knowing it’s going to get a chance to run. I have no explanation for the speed difference, so I won’t bother trying here.

I salute you, TWM. Your ability to manage windows is matched only by the speed with which you can manage them.

EDIT: As stated above, this was never intended to be a super accurate test. It’s relatively accurate, which is good enough for me, and should be good enough for anyone who isn’t getting a PhD in how to time booting into a terminal on Linux.

About these ads

About e-releasemanager

I'm employed by a top 5 electronics company. My current task is preparing Enlightenment releases.
This entry was posted in Uncategorized. Bookmark the permalink.

47 Responses to 2012 Desktop Shootout

  1. nih says:

    These “tests” really are a waste of your time since they really prove nothing.

    Just FYI since in my workflow i use Ubuntu/Unity, launching a terminal is as easy as tapping SUPER then “te” and then ENTER.

    Keep up the good work with E17

  2. I think the tests would be more realistic if you use same terminal ( ie xterm ) everywhere and start sessions with startx from console, with any login manager disabled.

    And perhaps more importantly, you forgot the wonderful dwm. It should match twm in speed, and outstrips many in terms of actually managing windows so I don’t have to ;)

  3. Ross Burton says:

    “Terminology takes FOREVER to start up the first time due to library resolution”

    And this is why GNOME has been actively merging related libraries in GNOME 3.

    Would have been interesting to see GNOME 2 tested.

  4. dsfsd says:

    Now, you’ve just beated phoronix tests :D
    And I mean it in a bad way!

    You won 3 internets!

  5. vatsers says:

    I can’t believe you left out e16 !

  6. vatsers says:

    Oh, and you’re probably more interested in the 2nd row 1st number which does not include buffers / cache.

    • asdf says:

      @vatsers: Exactly my thoughts!
      free | tail -n 2 | head -n 1 | tr -s ‘ ‘ | cut -d’ ‘ -f3

      • vatsers says:

        So assuming the above screenshots, the actual ram usage would be (MB):
        kde plasma: 806
        unity : 687
        Unity 2D : 635
        gnome shell : 539
        Gnome classic : 537
        Gnome Classic No effects: 507
        xfce4: 502
        e17: 467
        e17 optimizations: 460
        e17 minimal profile: 430
        twm : 417

        EXTRA: My laptop with e17: 185
        What on earth are you loading on boot that makes it so fat ?
        Checking top, I have
        1. e17: 72M
        2. terminology: 50M (!!!!)
        3. X: 42M
        4+. other insignificant rubbish

    • Cedric says:

      Actually no, you are not. The fact that the buffers/cache vary from one to another means that every desktop load a different set of stuff from disk. That cache is used and useful for every desktop. It will have a direct impact on load time as it will seek and load more data from hard drive.

      • vatsers says:

        We could argue this both ways.
        I personally consider it the kernel trying to be smart and improve i/o and not relevant to the resource usage of my desktop environment.

  7. Mike, just disable that stupid “icons on desktop” and the “splash” from e17, then let us know the results. As you mentioned, icons on desktop takes a while… but the worse part is splash and raster’s “correctness”. While everyone else hides the splash ASAP, raster keeps that shit while the last minimum detail still runs. I save couple of seconds here by just turning it off.

  8. Will says:

    For a different type of test, between KDE, GNOME, Xfce, LXDE, Phoronix says KDE the fastest desktop http://www.phoronix.com/scan.php?page=article&item=ubuntu_1210beta_desktops&num=1

  9. Anon says:

    What a bad test…
    Telling KDE spammed you with notifications also shows that you were using a fresh profile.
    The first start on a fresh profile is very long compared to a normal run.

  10. Simonas says:

    Please don’t blame GNOME for not finding a way to restart your machine. That’s why you should use a newest version (in this case 3.6 which got the relevant buttons back) with fixed usability/experience issues.

  11. RealNC says:

    Weird. After logging in to KDE (4.9.2) on my system (Gentoo Linux), “free -m” shows 290MB memory usage. That’s far, far away from the 800MB on your screenshot. Either your system is hosed and uses 1GB, or Ubuntu simply is such a resource hog regardless of the DE used.

  12. vincent says:

    and with the “awesome” windows manager ?

  13. gustl says:

    Why is E17 so slow and takes so much memory? Does the time include booting of the machine and X? Why is the memory usage so high? I remember running E17 on a AMD K6 with 128MB RAM just fine in 2004-2005.

  14. gustl says:

    Any chance you could test LXDE too?

  15. Please LXDE too. It’s great for it’s simplicity and clean interface.

  16. Dylan says:

    This seems like total rubbish… none of the desktop environments use that much memory! >_<

  17. stqn says:

    Please don’t test anything anymore… You’re obviously launching at lot of stuff on startup that have nothing to do with the DEs being tested, and you’re not even telling us which distro this is.

    Last time I checked, a clean Debian 6 with LXDE used 62 MB, and Xfce 4.8 under Arch 64 bit needed about 125 MB. (free -m values)

  18. pv47 says:

    Could you also test TDE (Trinity Desktop Environment, the fork of KDE 3.5.x) please?

  19. Ulhume says:

    @Vincent My personal test, a complete Awesome desktop starts in ~3s ;-)

    But what I really don’t understand in those tests is about TWM. This is quite the same stuff as Awesome, a minimalistic windows manager. How can it take 30s to start ???? Sure you don’t have an hardware problem somewhere ? And where those 711Mb comes from ???

  20. Marius says:

    Oh I was so shocked to find out that KDE 4 uses 1.3 GB of RAM … But then I remembered that I had 16 GB of it so I don’t really give a f… damn.
    For older computers though there’s a RazorQt … I don’t really like non-Qt DEs …. though LXDE is pretty nice.
    Tried E17 once but found it too unintuitive for my taste … Looked nice though… Too bad it’s finally getting released … it was so intriguing because it was the DE that never got released.

  21. You can reboot via the gnome-shell gui, hold alt in the user menu and a reboot option appears. Yes its a bit intuitive, but its certainly possible. You can also install the alternate status menu extension from extensions.gnome.org in just a few clicks. In gnome 3.6 there will be a reboot option by default

  22. Your memory usage looks very off. On my 64 it machine with 4 gigs of ram, gnome-shell generally uses 300-400mb on cold boot, tops. My boot on fedora 17, and arch with gnome-shell is about 13 seconds to GDM, and 10-15 to load responsive gnome desktop, and this is on a 5400rpm laptop drive! 50+ seconds seems abnormal.

  23. Randy says:

    Great article – fun read.

    You should do another round with the other DE’s mentioned above and add my vote for MATE, as well.

  24. Scias says:

    I’m sorry to say that you’re comparing apples with oranges.

    You cannot expect that full-featured DEs (KDE, GNOME..) will compete against minimalistic Window Managers in term of memory consumption, just like the latter ones won’t offer all the features of the first ones… No magic here really : More features = More RAM.

    Also, comparing the first runs time is just as meaningless and uninteresting. Some DE’s will need to cache or create a lot of stuff in the first run (like file indexing) whereas some others won’t because they don’t offer/need such advanced features.

    I will also add that testing on an Ubuntu is another issue as they don’t actually offer true “vanilla” versions of software. For example, a lot of people knows that Ubuntu does a lot of disgrace on KDE and makes it slower/buggier than what you could experience with a true vanilla version of KDE. (eg: Archlinux)

    On my personal experience, I actually run KDE since 4.6 on an Archlinux 64-bit and I almost never had any issue with it. I built a lightweight version of it, needing no more than 400MB and that boots in 2 seconds from KDM while being able to access most of the amazing features of it. Because yes that’s another missed point in this article : customisation. Actually you can customize your GNOME/KDE/whatever so it consumes a minimum amount of hog/RAM.

  25. Pingback: Сравнение скорости запуска и потребления ресурсов KDE, GNOME, Xfce, Unity и E17 | AllUNIX.ru — Всероссийский портал о UNIX-системах

  26. Pingback: Linux, BSD un citas lietas - Atvērtajās ziņās | Cik resursu “noēd” grafiskās darbvides?

  27. Cédric says:

    Here Unity fresh boot: 226 Mio

    So:
    – This test sux
    – You don’t even know how to read free output !!!

  28. Alexei Rayu says:

    You are having very strange results there. I recently ditched Unity for it’s slow and getting slower interface, and installed Linux Mint – tried Cinnamon and Mate. And both use around 410-430 MB of RAM from initial boot. I don’t know why you are having no less than 800 MB RAM taken every time.

  29. Pingback: Links 11/10/2012: Ubuntu Donations, Humble Bundle | Techrights

  30. ix says:

    I don’t want to beat a dead horse, but your numbers are off. You’re reading your RAM usage wrong. No DE uses that much RAM, I have only one GB of RAM and I can run KDE without issues. Here is a screenshot with my current setup:
    http://i.imgur.com/RKNoN.jpg

    I cheated a little by opening the terminal with the keyboard shortcut, but on the other hand, rox and gkrellm open on startup.

  31. Clemens Eisserer says:

    Wether you are using XCB or “traditional” libX11 doesn’t make any difference when it comes to “software” vs “hardware” accelerated rendering.
    Its actually just another library transporting rendering commands to the x-server.

  32. BarbelleraOrEverhowItsSpeltwashot says:

    Half your time problem is lightdm.
    The rest is that KDE loads things prior to boot.

    The best work case is opening web mail and a file manager.

    The best icon set in the world is Faenza.
    For which KDE’s file manager blows like a real dolphin with oxygen. The thing is just bad on the eye sight. But Euros have great eyes. Speaking of which, gnomes must have the eyesight of a hawk because they don’t seem to want you to change the font dpi or font sizes.
    I mean, shet. They posted on a forum links on why you shouldn’t change dpi.

    Screen savers? Where are they?

    Unity unifies the desktop so bad that copying files from one window to another becomes confused.

    The test you didn’t conceive here was usability. For which XFCE4 wins.

    GTK3 is a train wreck. The color picker, I can pick more colorful candy from my nose.

    Thanks for the pain FSF.

    Gnome 2.26 was the king. Just like KDE 3.5.10. But all great kings end up passing their thrones onto immaculate offspring which falter in the heat of immense battles.

    Here’s hoping the old men XFCE and E17 can carry their courts far into the future….

    L8r

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s