27 September, 2007

Performance - Win & KDE

People often say Linux has a better performance than Windows. Others disagree, and say the opposite is true. Now in my own experience, it's mostly so that both perform differently. windows boots up faster, in the sense of showing the desktop. But you can't actually USE that desktop, clicking the start menu as soon as it's show can take several minutes. In linux/KDE, it'll show slower if your session is still being restored (that functionality doesn't even exist in Windows) but it won't take minutes.

On the other hand, moving and resizing windows goes faster than in Linux. And have you ever seen your mouse anything else but smooth in Windows? I can stop my mouse for a second even on my 2 ghz/3GB dualcore system in linux - just use konsole with 10 tabs, set it to send the commands to each tab and log in as another user (10 times). That's not even hard - but X chokes on it.

Yet I've changed my opinion in the last few months. I've worked with windows a lot, and the deficiencies are becoming clear. Sure, drawing performance is excellent, and the mouse never stops. But start firefox (and let it restore 5 tabs) and your system becomes unusable for a few seconds (not the least because you just can't minimize the starting firefox, it insists on jumping up and taking focus a few times). It takes 10 minutes at least to boot up and start Outlook and firefox. Pretty painful. But the weirdest thing is that the system can become very slow without any apparent reason. The start menu normally takes it's time for showing submenu's, but sometimes I'll have to wait over a minute; the background doesn't redraw, I can't switch windows. My collegues react pretty dull to these kind of things: "you're trying too much, just wait". Well, I got work to do, I don't want to wait.

So I tried to figure out what's wrong. In linux, I use a cpu meter on my panel. That way, you know what's going on - is an app slow, it's because you're compiling, moron!

But the CPU monitoring stuff on windows is entirely useless. Really, wtf is that thing measuring? It seems like some random value... For example. The following screenshot was made a little over 10 minutes after boot. I started firefox, an explorer window (never showed up) and Outlook. So everything stopped to redraw, most things got slow (but not moving mouse, or even a window). So - there must be something going on, right? Well, no. According to the system monitor, those apps which didn't start nor redraw didn't stop working due to a lack of CPU or memory:

(screenshot taken after minutes of waiting for a response - thought the system was busy...)

As I know a little of scheduler things on linux (having followed the -ck mailinglist for years) I suspect a priority inversion or something like that - an higher priority process wants data from a lower prio process, but by being high prio, it makes the low-prio one unable to actually process and send the data. This seems to happen a lot, and most Windows users here at work are so used to it, they don't even notice it anymore. Not being able to work for up to a minute, many times a day - apparently, you can get used to anything. Boy, I get annoyed if the K-menu takes more than half a second to come up.

Guess there's a good reason why Vista takes up so much resources - these hickups of course seem to be smaller on much stronger hardware. Stronger hardware = more room to fuck up. So instead of fixing the scheduler (and other) problems, they up the minimum requirement... Gotta love those guys.


How much money would companies earn on switching to linux? I mean, JUST decent windowmanagement in windows, I'd spend a million bucks on that if I had it. Windows just take focus while you're working, or they seem to have focus but don't (Outlook asks for my pasword everytime it starts. It shows a little 'type pasword here' window, which seems to have focus, but doesn't). And don't get me started on the alt-tab behaviour - even a tooltip over a button seems to count as a full window in alt-tab, so you can't use that to switch to another application if your mouse is over a button!!! blegh. I don't understand why ppl take that pathetic excuse of an OS seriously, and say 'linux isn't ready for the desktop'. No, WINDOWS isn't ready. Linux was ready years ago, but MS still has a long way to go. The only reason it's being used is because ppl gave up on it - they don't try things more efficiently (alt-tab) because it won't work. Just do everything the slow and painful way. Companies should sue MS for RSI...

23 comments:

  1. That's exactly my opinion. I always thought saying Linux isn't ready for the desktop is a stupid thing to say.

    ReplyDelete
  2. You don't seem to have switched on viewing of 'kernel times' in your task manager (that's 'system' in Linux).

    Also, task manager doesn't let you see when something's doing heavy I/O - which locks up Windows just as much as it does Linux.

    I haven't seen that window trail thing in real life before, so I'm afraid I can't help with that.

    ReplyDelete
  3. @Rik:

    The kernel times thing only splits up the information, showing it red - but it doesn't enlarge the whole number. No matter how interesting it is, the CPU usage wouldn't been higher.

    Yes, the IO thing. It doesn't show that. But I still wonder WHAT IO would have caused this, it's not like I was starting a million IO-heavy things, just a webbrowser and an email client...

    ReplyDelete
  4. Maybe you should install some new drivers for the graphics card.

    I had similar problems, but only before installing drivers. And no, I don't have to wait ages for the tasks you mentioned.

    Cheers mat

    ReplyDelete
  5. I had to deal with similar problems with my secretary's machine very recently (as a linux user).

    I found that much better monitoring tools are available from microsoft-

    For instance
    http://www.microsoft.com/technet/sysinternals/utilities/processmonitor.mspx

    The guilty program turned out to be realplayer which insists on launching at login and was thrashing the system...

    ReplyDelete
  6. Well, at the two above: this is a work machine, I don't have any rights. I'm lucky I can run firefox... The thing has Intel graphics, but the bad graphics performance isn't what I'm pissed about - as I said, linux is often worse. It's the weird lockups. And we work 'flex' so I try a lot of different systems with different hardware here, and they all have the same. Windows just lockups now and then, apps don't seem to receive the (available) resources. I've seen it too much now (and not here at work). Most ppl don't even seem to notice anymore, they just wait and forget it...

    And there's a lot more to complain about (outlook locking up when receiving server data?!?! wtf in 2007?) but I'll keep that to myself for now ;-)

    ReplyDelete
    Replies
    1. The thing that Outlook don't use threads is the most anoying "feature" of the whole Microsoft-World. Most people using Pop3 or Exchange Server (in company)(caching is possible there) and don't recognize this stupid shid I think, otherwise I wonder why anybody still use it.

      Delete
  7. "you're trying too much, just wait"
    That's exactly what my father always (even preventively) said while I had to fix his system...
    For your mouse issue maybe you could try a different driver. Before I switched to evdev I had never problems with a laggy mouse. If you have a standard button mouse maybe this will help:
    Driver "mouse"
    Option "Device" "/dev/psaux"
    Option "Protocol" "IMPS/2"

    ReplyDelete
  8. @latest anonymous: I only have a skipping mouse if there are at least 6 or 7 CPU+IO hogs going on. Linux becomes much slower then ;-)

    And so does the mouse. This does NOT influence the mouse (that much) in windows (but the apps aren't usable with 2 or 3 cpuhogs anymore).

    ReplyDelete
  9. You are experiencing what seems to be simply heavy paging due to lack of RAM. Systems under heavy paging exhibit low or no CPU consumption while at the same time appear to be hung. Windows systems rapidly go to the crapper when RAM is scarce. Stop looking at the CPU graph, start looking at the page file and commit charge tab, and buy more RAM.

    ReplyDelete
  10. On the Outlook lockups: you do realize that the no 1 most hated bug in KDE is KMail (and the whole of Kontact, for that matter) locking up while fetching and filtering email.

    ReplyDelete
  11. the problem with the mouse is that input devices arent threaded (yet) but its on the way

    ReplyDelete
  12. "And don't get me started on the alt-tab behaviour - even a tooltip over a button seems to count as a full window in alt-tab, so you can't use that to switch to another application if your mouse is over a button!!!"

    This is not true. I guess, it's possible to write an app to behave this, but in this case the app is broken and not Windows.
    I can't reproduce this for any application I use.

    And for the startup times of applications, at least for the few KDE applications I checked, they are better on Windows then on Linux.

    ReplyDelete
  13. Yeah.. welcome to Windows ;)

    1. paging due to low ram... this makes windows thrashing...

    2. Windows shows you a login windows very soon. It keeps loading services and processes in the background - not one after another but many at once. Then, when you finally login, the explorer is loaded in parallel, then some processes like real player tray, java tray, whatever tray, x updater, y updater, blah utility, blah service. Now while all these processes are abusing your disk trying to get some data out of it, you f**king dare to start firefox?? ;)

    A clean Windows is usable after about 1 minute... a f**ked up system of unexperienced users who just install everything may take 10 minutes.
    Additionally, at work there's usually system management software installed which *additionally* runs many tasks on logon...

    Yeah.. and all those focus stealing windows - I love it! ;)

    ReplyDelete
  14. "Sure, drawing performance is excellent, and the mouse never stops."
    What version of Windows is this? My Windows installation frequently looks like your screenshot: windows not redrawing, mouse frozen, etc. At least under my working circumstances, KDE has much better drawing performance.

    I've only had my mouse freeze in KDE twice in almost a year of Linux use. Admittedly, I've never opened up 10 tabs in Konsole.

    ReplyDelete
  15. I don't see why one shall buy more RAM to compensate the the bad work of Microsoft's programmers!

    By the way I didn't manage to reproduce what you experienced with Konsole. I opened ten tabs and one 'send input to all sessions' then tried 'su' then 'su user' I had an hard drive access so it didn't came up instantly, but I could still move my mouse like crazy with the other hand.

    My hardware is allot slower than yours. I use debian lenny with KDE.

    Thanks for this entertaining and instructive article.

    Cheers!

    ReplyDelete
  16. I have Kontact, multiple search windows, Quanta Plus and Firefox opening on my Linux laptop, which is an old Compaq (albeit with 1GB RAM). I have Outlook, VoIP phone, Firefox and IE (for work purposes only) on my XP laptop (new Toshiba, 512MB RAM). It takes less than 5 minutes to get functional on Linux and 16 minutes before Windows accepts user input.

    I'm so happy to read your post because I thought it was the peculiarity of my own machine as nobody else in the office seemed to be upset by this.

    Still, as a writer (science-fiction romance, would you believe?), I can say that OpenOffice is still behind Word. I'm running Feisty and OO still crashes on me regularly. Also, smb protocol is not fully supported, which is nuts when I work primarily from a networked HDD.

    I've also noticed sloppiness in Outlook and IE where memory is not released, even when apps are shut down gracefully. Must be that Microsoft assume that Outlook/IE are shut down only at the end of one's day so who gives a crap about proper memory management. Mind you, Firefox bites me with its memory hoarding as well, but the problem seems more visible in Win than Linux.

    I call it a draw.

    ReplyDelete
  17. @anonymous "Maybe you should install some new drivers for the graphics card."

    What? You expect a user to go and hunt down a 'driver' on the web and 'install' it? Just to get the machine working?

    Windows will never be ready for the desktop while people still have this mentality.

    ReplyDelete
  18. @ Rudd-O:
    The problem is due to paging??? The ram stats tell otherwise. 50 MB physically free, 150 MB cached (= free). So plenty of room there (200 mb total).

    @André: Yes, KMail locks up for a second or 2 when filtering. Outlook is away for a 1 minute at least while it tries to receive calendar info from a colleague, and I want the info of 10 colleagues -> which takes ages...

    @Putthun: Just tried it. Indeed, it's only in MS Word - try a tooltip over a button, alt-tab won't work. BTW adobe is entirely silly too, as certain versions create a 'ghost window' which makes alt-tab impossible/weird as well. And a find dialog in notepad also makes alt-tab impossible -> KDE has all these things covered nicely. Modal dialogs are properly ignored by alt-tab.
    And indeed, apps start faster on win than on linux, we still have a pretty bad toolchain (esp. the linker/lib loader sucks).

    @Robin: a 'clean' windows install isn't very usable, is it? ;-)

    @KS_Augustin: OK, let's call it a draw, but then only with Vista. XP clearly is behind, imho. And it's a draw with KDE 3.5.x - which is 2 years old. So KDE 4 is gonna kick vista's ass ;-)

    ReplyDelete
  19. I can't reproduce that mouse lag.

    On a 3-year-old laptop (1.8Ghz, 1Gb ram, nvidia proprietary drivers, kwin, no composite) I open 40 shared-input konsole tabs, ssh-in as another user, run "yes 1234567890", run "ls -R /usr/portage"...

    Through all that I can still smoothly move the mouse or a window.

    ReplyDelete
  20. +1 for crappy applications

    applications sometimes load part of themselfs into memory on bootup to reduce their own startup time (openoffice,acrobat,the mozilla suite)

    focus stealing prevention can be set with the tweakui powertoy. (cmdlinehere is nice, too)
    and sysinternals tool are a must.

    ReplyDelete
  21. Ditch the old taskmgr and get a decent "top" for windows
    http://www.microsoft.com/technet/sysinternals/processesandthreads/processexplorer.mspx

    ReplyDelete
  22. On my new Asus Notebook I get about twice an hour an explorer.exe hang up, I never got something similar on a linux system (even with the same hardware).

    ReplyDelete

Say something smart and be polite please!