a fellow came into #kde on irc today and in the course of conversation noted that he didn't use konsole because it was so much heavier than rxvt. while i was just an observer to the conversation, i thought i'd take a look at the memory usage of konsole and xterm (i didn't have urxvt installed).
now, common wisdom would dictate that if it is a KDE app it must consume more resources, right? and we all know that if a program has more features that it comes at a price in the form of resources, right? and since konsole has an amazing array of truly kick-ass features and uses the KDE libs it must be a behemoth, right? well, that's the position he was operating from. no proof, just relying on logical conclusions based on "common knowledge".
i explained to him that since konsole allows multiple tabs one avoids the overhead of multiple instances of the same app when running multiple sessions; having an equal number of xterms would be "heavier" for some value of N sessions. `konsole -xft` consumes a bit over 6MB of RSS on my machine and each new tab takes <100K, with some additional overhead as it runs over time. in fact, the konsole i've been running for days here with 7 tabs weighs in at ~8.5MB. each xterm on the other hand, takes a little over 3MB of RSS. this means that just 3 xterms weigh more than my 7 session konsole. considerably more, in fact. with far fewer features.
well, the urxvt user didn't believe me. he figured i was just guessing. when i showed him the numbers, he accused me of not understanding how to measure memory usage under Linux. i explained how i measured, which led him to go do his own measurements. cognitive dissonance in action! some time later he returns with the conclusion that my numbers, and conclusions, were indeed correct. oops. konsole is lighter for multiple session needs than urxvt (which turns out to be considerably lighter than xterm, btw).
the moral of this story is that knowledge being common does not make it correct, it just makes it common. in this case the commonly held idea that KDE equates to "heavy" and "bloated" was complete bunk. spread the word.
Sunday, October 31, 2004
Subscribe to:
Post Comments (Atom)

9 comments:
I think there are two really damaging myths about KDE that are propagated particularly on IRC. One is that KDE is a 'newbies' desktop environment, because you're not 'l33t' if you have desktop icons.. or something... the other is that KDE is 'bloatware'. It's all silly teenager stuff but then other silly teenagers listen to it and end up avoiding KDE, and grow into silly adults who are still avoiding KDE with strange misconceptions. It would not be so bad if it stopped there, but then they spread the same silly 'common knowledge' and start it all over again.
Choosing another desktop environment because that's what you want to use is what Linux is all about but I really believe that this kind of criticism is harmful. People so rarely comment on what they love about applications and tend to focus on what irks them, and this causes a negative feedback loop. I really think there is a place for more positive feedback to KDE devels and the community at large. Is it so hard for us to say 'great job, keep it up guys?'
can.
There's always a group on the Gentoo forums that's jumps on any chance to say KDE is bloated but when I ask them what's bloated about it they just say that "it is". ;) It's mostly from the *box fans.
Great blogs Aaron, and great work on KDE and especially Kicker recently. Keep it up!
Hi Aaron,
How about making that a dot story? It's certainly something we can point people to, and a blog doesn't sound so meant-for-the-public as a real news story...
Cheers,
Reinhold
Hmmm... blogger.com doesn't support trackbacks, does it? Whatever, my comment became too long so I out it on my blog: Watch out with the word "proof"Cheers,
Malte
Hello, PQ here.
You have one major weakness in your deduction: you cannot add RSS sizes together!
According to http://www.mozilla.org/projects/footprint/footprint-guide.html
RSS (the (virtual memory) resident set size) contains Code, Data and Stack. While Data and Stack might be private to processes, Code can be shared. Therefore you cannot compute the memory consumption of 10 xterms by adding their RSS's together.
Note, that the Code part contains not only the application itself, but also libraries, such as the C-lib and X11 related libs. These are definitely shared, even with other processes than xterms.
Even the Data part could be shared too, if it contains mmap:ed files, and read-only mmap:ed files are shared.
You could repeat your investigation by using the VmData and VmStk values from /proc/[PID]/status, but I do not know if even they are what they say. The kernel documentation (filesystems/proc.txt, 2.6.9) implies that the memory statistics are somewhat broken.
Perhaps you could try and see how many konsole tabs or xterms you can open until you run out of memory. Just get a box with little memory, install xterm and konsole, and direct their output to an X-server on another machine, so that X's memory consumption does not interfere. Disable swap and start forking ;-)
Which reminds me: when talking about graphical applications, the process's memory consumption is not the only resource the take, they also require memory allocated by the X-server. This should be investigated separately.
Therefore, your "proof" is as good as their proof when they say KDE is bloat. Or even worse, they usually have time benchmarks at their side.
Don't get me wrong, I'm not saying which one is lighter, I just wanted to point out the problems in your thinking.
Seems you have a lot of spam on your blog..
Just a little remark about urxvt. I guess the guy you met on irc doesn't know this, but urxvt also provides "urxvtd", which is a kinda of daemon process, and "urxvtc" which is a client for "urxvtd". This allows you to have several terminals which all use the same "urxvtd" process. This puts it on the same level as Konsole and in that case, you'll see it uses less ram than Konsole.
I'm getting completely different results here.
Running a very lightweight OpenBox desktop, switching from yeahconsole/mrxvt to yakuake/konsole yields horrible results.
Mrxvt consumes about 3MB RSS while Konsole eats a whooping 16MB (at minimum!). Don't ask me why it's so high compared to your results, maybe it's because Konsole is the only KDE app running on my system.
Yes, Konsole will win the memory race if running around 5-6 sessions, but memory is not everything.
Like xfce4-terminal and gnome-terminal, Konsole makes Xorg consume extreme amounts of CPU power when updating the screen.
When running a command/script in Konsole that continuously fills the screen with text, not only is the overall system performance crippled in my single-core environment, it also consumes valuable power when running on laptop battery.
Under xterm/xrvt/mrxvt, changes in Xorg usage is not even remotely measurable, and performance is much more smooth. Too bad mrxvt doesn't support Unicode, as this is the only feature missing to make it "perfect".
As a final note, this whole thing proves nothing about how "bloated" or "not bloated" KDE is. Konsole's just one single application and can't be compared to a full desktop environment.
I see your point about the ever ongoing KDE/Gnome hatred, and I agree most of it is just uneducated and groundless claims, but I think this "test" is quite ridiculous.
IMO both Gnome and KDE are extremely bloated, and even parts of XFCE is ugly too :)
If xterm/rxvt are used with GNU screen,
tabs or multiple terminals are not needed plus you gain the functionality of GNU screen (detach-reattach, I find it indispensable when performing remotely CFD runs on the PC's of my university (which is always)... and rxvt scrolls a lot faster when you have a lot of screen output.
KDE may be more resource intensive for certain items, but I happen to like it and how my desktop is. I have enough resources to run what I want.
On the reverse if you don't like it, don't run it. Use what you like.
Is that not one of the greatest things about *nix?
Post a Comment