A Memory Comparison of Light Linux Desktops
l3net.wordpress.com
l3net.wordpress.com
The most important part, however, is to shed light on "memory consumption" and how to measure it. The latter is a hard, hard task and there are odds in the game. The values given by "free", specifically, are only a (bad) indicator for the full system. E.g. have a look at those "buffers" and "cache" values. A lot of factors play a role: filesystem (c.f. btrfs vs. ext2), allocator (glibc?), sharing of dynamic libraries. I would specifically emphasize the last one: When you're about to run mostly GTK based apps, you will probably profit when your desktop has already pulled all GTK related dynamic libraries into memory (e.g. GNOME, XFCE). Whereas some minimal window manager might have a small memory footprint because it merely uses the Xlib/Xcb - an advantage over the moment you start Firefox or GVim. Or you might want to use Qt based apps - and that may profit from a desktop that pulled Qt in before (like KDE and others).
Having a compositing window manager also makes a difference memory-wise.
This said, pure code footprint _could_ be measured. It would be a hassle though. And in the end, the real noteworthy differences are those you can measure in actual time passing. Be sure to not only measure start-up, though.
Xorg + a few fonts is more "heavy" (in memory numbers) than the 90% of those dm/wm,
There are tools like x11perf, glxgears, and more, and at the end of the day, you cannot compare "fluxbox Vs a desktop environment", because you should be comparing fluxbox + cups + a desktop search indexer + a graphical filebrowser + a calendar service + this + that + ...
It's nice to see "the data", as "numbers", but you make a proper point about how it should be interpreted.
When I had more spare time (this is more than 14 years ago), I did test a lot of desktop environments. I did start with kde 1.X, and have use many version of many desktop environments and WMs... my tip is: pick the one that makes you "forget about it" and focus on your tasks.
Now living out of home and al the hardware I carry, and have access does not have any problems. When I loved at my home, I had recycled computers, and repaired by me ones, and if it was not ok for a graphical ENVIRONMENT (I don't care if I don't swap after boot, I care if I swap WHILE USING) I just did use such machine as a "headless server" and everybody is happy.
Other approach to low resources machines as the blog seems to talk about, is to enable remote login (xdm, gdm, kdm, whatever) on a powerful machine, and use the old one to just launch the X (raw) and the remote login/desktop client in full screen.
A few years ago, I did see this numbers on my own for the environments I was interested, and people used to tell me "xfce is light!!!", obviously, they did come from lighter environments, maybe because they were used to heavier desktops. I was used to fluxbox.
I was used to _forget_ about the WM and the backgrounds, and focus on useful things (unless you are preparing a your screen for a Hollywood film or something like that).
I just ask a responsive workflow. Most system do not provide that "by default" and you have to "setup", "cleanup" or "shortcut"... you can do it in many ways at many layers.
I like fluxbox by the following reasons: we did meet years ago, recycling computers with low resources, I did learn the configuration (behavior and keyboard) in half an hour and a few days of tweaking, performance/resources never was a problem, I did forgot about "it" and "it" did let me "do stuff". Until today this never failed/changed. That are my "numbers", I'm a happy customer.
The amount of ram a software uses seems like an odd metric to use, especially when the ram hungry beasts mentioned in the article use less than 250 MB.
You and I know as geeks that irrespective of real-world use, metrics and numbers are a good thing to throw around and make us seem smarter and more efficient than we actually are. :D
I was intrigued by the results - but will still keep using Unity myself (I love Mate/Cinnamon too) though its second last!
IMO, the fact that they require more memory can be considered a reasonable indicator that they are more complex / do more stuff. They need to read stuff from disk / generate data in order to fill that memory in the first place, which takes time. I'm not an expert, but I would guess that using more memory also increases the chance that some of it will be swapped to disk by the OS, slowing things down further (although only intermittently).
Comparing IceWM and JWM seems fair, because they both do the same thing. Comparing JWM with Gnome3 only on memory used for a vanilla instal is weird.
Besides, it's interesting to see that E17 is hardly 'lightweight', and XFCE is actually 'heavier' than MATE. WindowMaker (woo hoo!) is surprisingly 'lighter' than Awesome. I'm glad it will cut down on the X-is-slow-use-Y-instead-it's-lighter crap. Hearsay and fanboyism are endemic to linux wms, it seems.
If you haven't tried it, give it a shot. Was always intrigued by tiling WMs but resisted for far too long because of a vague resistance to learning yet another set of keyboard shortcuts. Seriously though, it's not bad at all.
He mentions i3 in a previous article, this is why it's on the bar chart.
Also covers XFCE, awesome, *box, etc.
Looking back on all the hours I used to spend tweaking and fiddling with configs for things that I no longer use has made me sort of a setup minimalist -- anything that's not broken for me usually stays pretty close to stock these days.
i3wm has no such dependencies, covers 80% of awesome's use cases, and is stable.
1. Multimonitor. i3 has 9 tags that are shared between all attached monitors. So, if you have 3 monitors, the distribution of tags may turn out to be [1,4,5,6], [2,8], [3,7,9]. You can move tags from monitor to monitor, but AFAIK, you can't exceed 9. I have a habit of keeping email, browser, music player, and chat program on one tab each. So, this limitation of 9 tags just kills it for me.
2. awesome has better placement of floating windows.
3. Vertical task/status bar. This is a minor issue, but I wish i3 comes with one.
If i3 fixes these things, I'd switch to it in a heartbeat. i3 has a saner config, and a much more elegant tiling layout.
You can also use a tabbed window layout (Super + E) to keep multiple programs full-screen on one tag. Then you can switch between them with the tabs at the top or Super + J, Super + ;.
* Tree-based/hierarchical tiling.
* Simple as hell multi-monitor.
* Beautiful config file [1].
* JSON API [2]
* Modal, vim-like key bindings.
[1] http://code.stapelberg.de/git/i3/tree/i3.config [2] http://i3wm.org/docs/ipc.html
The only issue is with certain java-based applications such as PyCharm or Arudino IDE, in which sometimes the windows aren't drawn correctly due to the JVM not playing nicely with "non-reparenting" window managers (such as i3).
Most Java distributions have the ability to work with non-reparenting WM's, but they detect it based on the window manager name.
So the workaround ends up being impersonating another non-reparenting WM, for instance Sun's Looking Glass.
It's nice that we don't need to write these things in C to be small and fast.
That last year or so, things got rough. I was really pushing the limit of what it could run without feeling unreasonably sluggish (with pretty normal workloads of browsing, IM, and either word processing or Ruby coding). First, I switched from Firefox to Opera. Then, I switched from Gnome to Xfce to IceWM. This made a world of difference, and I really didn't miss Gnome. It got me another 6 months+ out of that computer without being terribly frustrated all the time.
In most cases, on a modern computer where you have multiple gigabytes of RAM, I agree with you. But it's still nice to have those tiny window managers around.
So although I agree with your point it's nice to not have everything boil down to dollars and cents all the time :)
I'm very much a 'not dollars and cents' guy, but I see a lot of people struggle to maintain old computers when they're not really into enjoying that maintenance activity; those for whom an hour of troubleshooting -foo- is pure frustration with no fun mixed in.
Also, given the memory need of modern webapps, I wonder if even the delta between the two extremes amoutns to more than one or two opened tabs. Of course, if one or two tabs is all that your machine can handle, this is significant.
Why does every choice need a 'business case?'
Also there's a fair number of machines out there, used for non-web browsing purposes, yet might still have a use for a GUI.
Lets say you want a virtual cloud host, connected to via VNC to ... linode. The smallest linode is a gig, so you'll be using 1/5 of your total resources just for the window manager if you use KDE. Is that relevant, well only you can decide.
Finally the most interesting part of the graph was the exponential-ish nature of it. For some weird reason I was guessing WMs/Desktops grow vaguely linearily over time so a random sample from random aged WMs would be vaguely linear when graphed... that's not whats happening. Have not come up with an adequate mental model to explain the shape of the curve yet, assuming the data gathering wasn't manipulated to specifically generate it. Maybe its an attractor effect where one pole pulls to 0 or as close as you can get, and the other pole pulls to infinity, or as close as you can get (kde) and everything smoothly distributes in the middle ground.
Uselessly crude. What matters is how much code is on the critical path and how long it takes to run, not how much is loaded into RAM. A JPEG library loaded into memory that is not used when switching between windows doesn't impact window switching time. Contrariwise, KDE may have many thousands of times the latency if it tries to do many DBUS calls or something for an action that a simpler window manage would simply perform in-process. And it may not matter because "many thousands" of times the latency may still end up below the human perceptual threshold anyhow; 5ns vs 5ms is a whole lotta difference, except it sort of isn't when it comes to humans, both are instant.
So these articles are appearing a little after I'd have liked to see them but they're a welcome overview in any case. :D
2.5"/3.5"/5.25" SATA/IDE to USB 2.0 Adapter ($17.99) http://www.newegg.com/Product/Product.aspx?Item=N82E16812232...
Also, I usually pull out the hard drive I'm worried about accidentally wiping and boot from a live CD.
Or you could have used DBAN, which has modest min spec requirements.
I looked up the article; the statement is actually more ambiguous than I recall:
http://www.wired.com/threatlevel/2011/12/manning-assange-lap...
"Johnson testified that he found two attempts to delete data on Manning’s laptop. Sometime in January 2010, the computer’s OS was re-installed, deleting information prior to that time. Then, on or around Jan. 31, someone attempted to erase the drive by doing what’s called a “zerofill” — a process of overwriting data with zeroes. Whoever initiated the process chose an option for overwriting the data 35 times — a high-security option that results in thorough deletion — but that operation was canceled. Later, the operation was initiated again, but the person chose the option to overwrite the information only once — a much less secure and less thorough option. All the data that Johnson was able to retrieve from un-allocated space came after that overwrite, he said."
It's not clear what "after" means exactly, but it surprised me that he learned about the first attempt after the second attempt was complete. What may have happened -- making this much less impressive -- is that maybe /dev/sda1 was filled with /dev/zero rather than /dev/sda, so that the first part of the drive was totally untouched. So it might be much less impressive than it sounds, but it sounded impressive to me at the time.
In the end, I used Damn Small Linux live-booted off a CD and copied the whole drive to a USB stick. Took hours due to only having USB 1 back then, but it worked. Your external drive case is a better solution, but the "old distro" approach is great for cheapskates :-)
Damn Small Linux runs in 16MB of RAM and provides a GUI by default:
http://www.damnsmalllinux.org/
tomsrtbt runs in less, but provides no GUI and very little documentation:
http://www.linuxtoday.com/news/1998122400805PR
My point is that not everything needs to be small. We have freedom of choice here, not one-size-fits-all, and we can create specialized distros for specialized tasks.
It's not quite as good as a Lisp Machine, but it's better than nothing.
Tiny Core gives you a GUI desktop in an under 12 MB iso.
http://distro.ibiblio.org/tinycorelinux/
That said, I'm sticking with FreeBSD & dwm.
I guess one day I have to write my own window manager and taskbar adding to the huge amount of stuff that's already out there.
No I meant Xfce. I can't find that function. Are you refering to sorting by rules? I mean ordering windows by drag and drop. As far as I know no window manager or desktop environment allows that except the Windows desktop. It even does it in an very elegant way.
If I have VirtualBox open and a machine running I can drag both windows in the taskbar together and say, position them behind my browser.
http://www.bytebot.net/blog/archives/2009/02/19/kde-42-bring...
As a very welcome side-effect, the whole thing is very light. It runs in a few tens of MB.
A international CMS, or a static .html ?
This is the same.
If you just need to throw a paragraph (or to "just manage "other programs" and forget about the "environment" and you don't feel it's slow, then... any of the two options is ok.
More useful would be, "How long does Firefox/Chrome/etc open in this WM". If there is a difference then that would be more meaningful.
But the article mentions this in the conclusion:
> If you have some ancient hardware that you need to breathe new life into, or if you need to fit a distro on a modestly sized memory stick, the first thing you should look at is the window manager/desktop environment.
For me, it's a lot easier to drop Unity for XMonad than it would be to switch away from something like Chrome. If I actually want to do something with one of my old laptops, this might be relevant.
So a total of 293MB for KDE. Almost double as much as Gnome 3.
The more memory your desktop environment grabs, the less memory is available for disk caching. It might not be a problem, but it certainly pays off to invest in extra memory and in decreasing memory consumption of applications.
The machines I am currently using perform poorly because they do not have enough memory. I'm in the saving-for-a-new-machine phase, suffering poor performance on computers with more than adequate CPU power.
It must be said though, the Window Manager probably plays a very small part of that load. While browsers take a major single chunk. Much of the drain comes from the accumulation of everything. So many apps have a philosopy that "an extra 20(0) meg doesn't matter when you have gigabytes" that eventually they combine to actually eat up your gigabytes.