4 ms·
Here's why Windows feels a lot slower in a lot of areas when compared to Linux, Mac OS X and other OSes: the process scheduler has a bit of a high latency, the
by kermitthehermit 15y ago
Here's why Windows feels a lot slower in a lot of areas when compared to Linux, Mac OS X and other OSes:
the process scheduler has a bit of a high latency, the IO system is pretty bad and the entire hardware blocks a whole lot more than it should, there is no apparent control over how much IO bandwidth a process is allowed to eat up, the entire OS has to do a lot of system calls and a lot of calls to the registry every second, aero is also making the entire OS slower due to a poor design
This is why windows always feels laggier than other OSes. Windows 7 also increased the processing latency of the OS.
- agentgt 15y agoAlso ACL security processing isn't helping either.
- barrkel 15y agoWindows does have per-process I/O priority (at least since Windows Vista). I think async I/O design is baked in to the OS probably more pervasively and with a better model (e.g. no polling) than most other OSes; however, fairly few applications outside of servers use async I/O. What does "the entire OS has to do a lot of system calls" even mean? I don't think you're talking about the kernel, because the point of avoiding system calls is avoiding a user/kernel transition (something Windows' I/O completion ports is good at, IMO the reason its async I/O implementation is fairly solid). But it leaves open the question of what it is you are talking about; is the problem Explorer? The shell? The Win32 layer? Windows, for me, does not feel laggier than other OSes. In particular, Linux has always felt substantially more laggy for mouse input. Linux has long given me the impression of having an egalitarian scheduler, giving equal weight to user interactive apps and background processes when they have the same priority; but Windows bakes interactiveness into the scheduler algorithm as another input alongside priority. I haven't used OS X long enough to give a solid opinion on it, but it seems about as responsive as Windows and almost certainly better than Linux.
- kermitthehermit 15y agoHere are a few issues with it: event 500 / 501 with aero at 1920x1080 screen resolution - bad design & inefficient use of GPU functions and hardware for desktop composition & aero While this may be normal behaviour for pre-DX10.1/11 cards due to software emulation of some functions, this is not ok for DX10.1/11 cards which have those functions. laggy video - I couldn't get Windows 7 to play any kind of video smoothly on a GT 450 and 9800 GT at 720/1080p on an i7 with w7 64bit; you think you can play it smoothly, but then I play the same file on linux box and it's so smooth you'd think there's no such thing as frames if you kill ALL your apps (including services and background apps which are part of your apps) and you check how many requests per second to the registry there are, you will have a shock; I did this back in the XP era and it had like 50-100 registry requests / second. if you leave a W7 machine on for more than 24 hours and you have more than 6-8GB of RAM, you will have degraded performance even if you close the apps (memory leaks and/or memory fragmentation, maybe other issues) As for Linux, it's been quite laggy and buggy before in the aspect of responsiveness, but it seems to have improved in those areas recently. Mac OS X is doing fine too so far. edit: Let's not forget game input lag. Also, some CPU intensive games perform better when you set the priority of the processes which are 100% idle in 99.99% of the time to idle. I am talking about things like print spooler, app notifiers & tray area apps, updater apps and others like these. If linux seems slower in the graphics department, keep in mind it's got an X server, apps which render in that X server and that brings quite some overhead. Even though this is how things are, Linux is pretty close to "being there", pretty much like OS X is. Windows also lets processes starve the entire OS completely. It's not ok to have resources be eaten up completely so that the user might have to wait even hours until a task is done so that CPU usage drops below 100% across 4 or 6 cores of a system. This isn't normal. Also, Windows can give you high latency and bad performance even when there are more than enough resources: CPU & memory. Therefore, I'd say that the Windows scheduler is closer to the treat all processes equally and / or sink more time into idle processes with more idle threads than into processes with fewer threads and more active threads model. Linux hasn't left me with this impression recently and OS X hasn't left me with this impression since Leopard / Snow Loepard.
- barrkel 15y agoEvent 500 and 501 seem like false alarms (I had never heard about them until today). I have a fairly high spec video card (AMD 5870) and when I drill into the log where those events show up, I can see there's been a few of them every day - but I've never actually noticed any performance degradation. I would never have known that they were being produced until I looked into them, and on the basis of the lack of actual degradation, I'm confident I can forget about them. Video is fine and clear for me across a much larger range of codecs than I've ever seen on Linux (or Mac, for that matter). I normally get no more than 2% CPU utilization for video playback; any HD content I have is hardware accelerated, I expect. 50/100 requests per second is meaningless without knowing the cost of those requests. My machine, if you ignore superscalar architecture and hypethreading, is capable of over 12 billion operations per second. Unless these registry reads have fairly substantial costs, they're completely unnoticeable. My Windows 7 machine here currently has an uptime of 48 days. I seldom reboot until the Windows Update nag gets the better of me, and I frequently turn off the update service to get rid of the nag. I have 12GB of RAM, and I've never seen this degraded performance you speak of. I wrote my own print spooler (it actually runs on a different machine) and have a bunch of tray applications: CrashPlan, DropBox, Process Explorer, corporate VPN, occasionally Skype and Steam. Again, I've not noticed any performance drain from these things. Not even games these days are CPU constrained; with 4 cores (or 8 if you include hyperthreading) the only thing that taxes my CPU is video transcoding. There's plenty of spare CPU capacity in games; they seldom get above 30 or 40% utilization. If you really think Windows is odd in starving the system for non-low-priority runaway processes, try running a forkbomb without ulimits in place on your Linux or Mac machines. But I have no difficulty running Handbrake or SuperPI or similar utilizing 100% CPU but still having responsiveness enough to shut them down etc. It's extraordinarily rare for me to find myself in front of a Windows machine where the UI is completely unresponsive except in cases of driver conflict or flaky hardware (e.g. a paging error from a bad hard drive will do horrible things). I don't know why you've soured so much on Windows, or what bad experience it was that pushed you over the edge, but when you bring up things like registry traffic and this "event 500/501", I get the impression that you are actively looking for things you think are worth complaining about, rather than pointing out things that are actually hampering your interaction. It hurts your credibility in my eyes, frankly. (FWIW, I was a computer technician before I became a software engineer, and I've been working with Windows of all varieties since about 1993, including the early (3.1 and 3.51) versions of NT (almost 20 years, scary!). I've dealt with thousands of machines running Windows. And for MS OSes based on NT, problems have overwhelmingly been because of hardware or driver issues, almost never because of OS issues.)
- munin 15y ago"the IO system is pretty bad" really? can you provide some analysis here? I've done a bit of hacking on I/O layer stuff in both linux and NT and I haven't seen anything that would lead to that conclusion ...
- kermitthehermit 15y agoTake one app which wants to do heavy IO and it will stall the OS more often than not. Take a machine which boots the OS and check how much stuff gets on the screen and if you can interact with it while the HDD led is at full brightness or blinking heavily. Take an i7 with 8GB of RAM and one 64MB WD RE4 drive and see how much that stalls compared to OS X on the same hardware... How come the cost of accessing the disk for reads / writes is greater for performance when compared to OS X? Why is Linux able to get stuff done and displayed on the screen while doing disk IO? I am guessing it's trying not to block as much due to starving other threads which want to read / write Notes: I've been using Windows since 96, Linux since 2001 and Mac OS X since 2004. I don't claim to be an expert or anything, nor a fan of any OS, I just made some observations over the time and wish that all the OSes improve in one or many areas.
- recoiledsnake 15y agoWhat? Care to back that up with some references? It sounds like made-up nonsense to me. >Windows 7 also increased the processing latency of the OS. Huh?
- kermitthehermit 15y agoPlease take a look at my reply to barrkel.