Making Operating Systems Faster
mbrowling writes "In an article over at kernelthread.com Amit Singh discusses 'Ten Things Apple Did To Make Mac OS X Faster'. The theme seems to be that since you won't run into 'earth-shattering algorithmic breakthroughs' in every OS releases, what're you gonna do to bump your performance numbers higher? Although the example used is OS X, the article points out that Windows uses the same approach."
why does my 3ghz p4 choke on spellchecking a 50k doc with a 500mb text editor (Word2k3) ?
why does explorer choke on listing 10,000 files ?
why should i ever upgrade my word processing applications ? or can they type for me now ?
bah, innovation is dead, shame
So pretty much, Mac and Windows are made faster by using resources when they're not being used already. Not a genius idea, but the hard part is figuring out how to do that, which is what the article discusses.
1. remove bloat ...
2.
3.
4.
5.
6.
7.
8.
9.
10.
What takes genius is getting every ounce of speed from a Linux or Windows box that can be a conglomeration of different motherboards, CPUs, graphics cards, hard disks, etc.
Gentoo Linux - another day, another USE flag.
After the government changes in the US and the DOJ is free to investigate monopolism in software again...
How hard would it be to make the case that consumers would be advantaged by gaining access to just a basic o/s?
It mightn't be easy because the courts are legal organs not technical forums, but with a disciplined argument based on metrics derived from the types of performance issues noted in the article... an articulate, intelligent lawyer might get this done.
Right?
I don't mind that they are a possible thing to include. What I don't want to see is them enabled/installed by default.
You have to go through a bunch of settings to tweak it for "optimum performance" or whatever. Those should be enabled by default. The fancy stuff should be enabled easily but it should be up to the user to decide if they are turned on.
RAID or more RAM will solve your problem just as well. You don't need to have a faster (read: runs hotter) HD in your machine.
yeah, because 2 or 3 10krpm drives are much cooler than 1 15krpm drive. oh yeah, and if something's bound to disk I/O, RAM will not solve your problem.
XP is CRAZY slower than 2k.
XP is faster to come up to the desktop. However, it is still busy accessing the hard drive and loading stuff in the background. You still have to wait for the OS to quit loading itself before you can use anything. Microsoft's claim that XP is faster than 2K was based on the time to desktop, apparently not time to usability.
Once loaded, XP has an annoying habit of wanting to refresh the desktop from time to time. That slows things down even more.
A love beyond compare...
...someone who RTFA and can summarize it for us lazy people. That's exactly what Apple did.
upgrading from 2K to XP on the same hardware will slow you down. Upgreading from OS X 10.2 to 10.3 on the same hardware will give you speed improvements a majority of the time.
I can see how they can write an artice about how apple did this but to claim that Microsoft does it too. I don't see how. Unless Microsoft has improvements but enough of the new things they add slow it down so much more the gain is outweighted by the loss.
Evolution or ID?
Of course one could argue that is worth making the GUI faster to give an apparent speed increase whilst allowing improvments in CPU/Disk to carry the rest of the OS. Then again of course I know nothing about system design
Rus
Cheap UK and US VPS
Hard Drive is the bottleneck........ Has anyone tried using a RAMdisk as their OS drive? I've read a lot and heard of people trying, but never come across a comprehensive how-to + review. With the amount of ram we can have nowadays (new pc's coming with 6 banks for dual-channel DDR), I'd pay $250 for an extra 2GB of ram in order to have my OS + key apps run off of that. Other solutions? (CF too slow?)...
BTW, Windows 3.1 sitting on MSDOS 6.2 ran like shit of a stick on my old P133. I wonder if/how it would run on a modern system?
I don't know, but I ran Windows 3.1 on top of OS/2 3.0 and on a P133 and it worked perfectly, and its speed was acceptable. It must have run significantly faster on native DOS.
I don't read or respond to AC posts
Yes, but a 10,000 RPM SATA drive is so expensive! A 73.4GB Western Digital "Raptor" 10,000 RPM is the same price as a 250GB Maxtor MaXLine Plus II 7200 RPM.
Maybe 10,000 RPM model would make a good boot drive with all of the home folders on the 250GB 7200 RPM drive. Then again, most file access would probably be from the slower drive. Eh.
mbbac
Rewrite it!
This holds especially for applications, but it definitely applies to operating systems as well. Most modern software is simply bloated beyond belief.
BeOS, by all accounts, is a full-fledged OS, and it takes a Pentium (not Pentium 4, but original Pentium) 15 seconds to boot it, including the GUI. What's up with Windows and OS X taking over a minute on hardware that is several times faster?! On Linux, you could at least skip most of the init stuff and boot in seconds (likely mostly pauses that you have to keep for faulty PC hardware).
Then there's the libraries. glibc is well over 5 megabytes. You are not going to convince me that isn't bloatware. If all that code doesn't eat CPU time, it at least eats memory, which could lead to more swapping. GTK is also typical - ever resize a GTKWindow? It's visibly slow! That doesn't happen to Windows 3.11 on my grandpa's 486! What is that code doing?!
Applications... Firefox is what? 10 megabytes installed size? And that's a light weight browser. What? We need 10 megabytes on top of libc, X, and GTK for parsing a simple markup language and rendering those widgets? Excuse me! Even lynx is hundreds of kilobytes, and it mostly just reads data from a socket, strips the tags, and spits it straight out. What the fsck? Say "OpenOffice.org" or Java and I'll explode.
All we have today is bloatware. I'm *really* tempted to roll my own OS and applications, and I am going to have a shot at it this summer.
Please correct me if I got my facts wrong.
> What I don't want to see is them enabled/installed by default.
... and never buy it.
Let me guess, you don't sell OS's right? To move software, you have to have all the pretty stuff that makes it look nice ON by default. Because that's what the general population cares about. They'll look at it and say "Wow, that's ugly, what a crappy OS."
When it's pretty, *you* will say "Wow, that's pretty, but it's slowing it down, let me go into control panels, and registry settings, and god knows what else to tweak my settings while I overclock the damn thing and stick it in a freezer." Then you'll bitch about it on Slashdot. Which is exactly what's supposed to happen.
Because *they* don't know how to turn it on, and *you* do know how to turn it off. So the burden, by default, is on you. It sucks, but hey, what else is new?
Don't take my word for it -- take Ars Technica's review of Panther for example:
"Fundamentalism" isn't about divine morality. It's about human authority.
But it does have that annoying dog (whats his name?) 'seach assistant'.
Following in Microsofts footstep would produce dramatic results in speed. Quite simply all Apple needs to do is double the system requirements for every new release. This is much simpler and cheaper than tweaking the GUI.
I mentioned the eye candy slowness recently, and somebody came back with a reply that made sense:
Windows's idea of eye candy was that menus (and submenus) would all slowly fade in. The process of navigating deep into hierarchical menus was maddeningly slow--at least until everyone turned it off.
In osx, menus appear immediately, and then fade out after you select something. This is not only pretty, but functional: it gives you visual confirmation that you've selected a menu item, which can be helpful if whatever you've asked for doesn't produce obvious or instant results.
the thread is Here
liqbase
When it's pretty, *you* will say "Wow, that's pretty, but it's slowing it down, let me go into control panels, and registry settings, and god knows what else to tweak my settings while I overclock the damn thing and stick it in a freezer." Then you'll bitch about it on Slashdot. Which is exactly what's supposed to happen.
There are easier ways to enable these "features" than creating a ton of hoops for BOTH sides of users.
Instead of clicking through a bunch of menus, finding the options, selecting radio buttons, etc, just disable it by default and ask at install/setup time "do you want the 'pretty version'? Be warned that it may affect system performance."
I think that eliminates the problems.
The problem, if Windows came "bare-bones", is that no one would buy it.
/. crowd may not see those things as improvements, but MS isn't selling to the typical /. user.)
If Joe Public doesn't see "improvements" in the next generation of OS (like transparent windows, integrated internet browsing, etc.), then MS isn't going to convince many people to upgrade.
(And yes, the typical
Tuus crepidae innexilis sunt.
Ya, benchmark after benchmark showed all of XP's IPC mechanisms to be much, much slower than previous releases. IIRC, several other subsystems were found to be slower as well. By those in the know, XP is widely regarded as Microsoft's slowest OS release in a long while. The only reason it's not widely realized is that machines constantly get faster and more memory is being used which hides the additional bloat.
Anyone that thinks MS' OS, as a whole, is getting faster with each release is simply not living in our reality.
We're talking desktops here.
When I click on Open Office or Netscape the CPU and I have to wait for the disk to finish the transfer before we can work. A 15k does it faster. The CPU cycles are wasted because on a desktop they're rarely used for something else. I'd agree with you if we were talking about a server.
Government of the people, by corporate executives, for corporate profits.
In linux, one of the things that makes it seems really lethargic is the lack of operator feedback. With even recent MDK and RH installs I notice the mouse cursor is frequently just sitting there doing nothing at all while the machine thrashes away at a task. Last week I was mutzing around with DiskDrake - I told it to create a 160GB encrypted partition and mount it. After several seconds the cursor stopped animating and the window became completely non responsive. I knew it hadn't crashed it was just busy waiting for the process to end and if I let it go it would eventually come back. About five minutes later it returned, filled in the empty white box and reported the task complete.
This kind of behavior in windows means "the task is dead, ctrl-alt-del and see if you can end the task." In linux it may not mean that at all - it may just mean "wait a minute I'm not done." But in either case it lessens the user experience and, in some cases, is downright confusing. And in most every case it's extremely frustrating.
This is the sort of thing I was talking about with suse. I'm not sure what switches were set where, but I've never seen the busy cursor lose its animation nor have I seen a busy window just quit responding. Even when the task takes a few minutes it remains well behaved on the desktop. This is the sort of polish that makes a computer feel "professional" and even "fast" - it doesn't have to get done this very second, but "at least act rational while you're doing it."
That's the way to get work done - don't install any apps! Who needs LaTeX?
There's no point removing features to reduce the mythical "install bloat" if you can't actually do anything with the system.
Relying on shared libraries rather than stand alone binaries actually improves performance, by reducing memory usage when lots of processes use the libraries, and allows optimisations of the libraries to speed up all the apps that depend on them.
Small does not necessarily imply fast. For example, a project I work on was taking forever to open files (upwards of a minute for large files). So I implemented a custom memory manager that optimised block allocation for the application. The size of the program increased by 15% or so. Agghh! Bloat - must be slow, right? No, time to open files was reduced by a factor of 6.
I have 4Gb of RAM, 2Gb of it as disk. My system doesn't swap, it still has 2Gb of RAM used as RAM and the performance is sensational.
/dev/null. The system might be sitting at a kdm login screen, but an intelligent system designer would realize that there is a significant likelihood that half of KDE will get loaded sometime in the near future. Of course, apple has the right solution in making the behavior smart and configured per-user. While you might have gdm running with the expectation that the whole of gnome will be loaded when somebody logs in, maybe my computer is a dedicated webserver which runs gnome only for rare administration - in which case it is safe to swap out just about everything assoicated with it to make room for apache processes and disk cache for fetching webpages.
And how is the performance compared to a system with 4GB of RAM in which the VM is left to its own devices?
There is no question that adding RAM makes a system faster. However, what is under debate is whether using RAM as a RAM drive instead of as cache is a better solution.
I liked another poster's suggestion of preloading the cache by cat'ing selected binaries to
I think there is plenty of room for improvement in the linux VM - however I must say I'm generally in awe about how smart it is already...
you almost had a shred of credibility until you said -09
-fomit-instructions is an old joke, but -09 marks you as a clueless ShitHead.
Most of the other stuff I agree with.
Have you seen the latest gcc optimisation? It's -fnew-ra, it uses a graph coloring register allocator. It's a bit buggy and only meant for testing, but I've benchmarked it on some simple enough fp code, and it does make it faster. It consistently gave a performance increase of about 20s -> 18s to run the loop.
life on the bleeding edge eh? Is it useful?
probably not, when the time wasted doing this shit won't be recoved by a faster running program...
I am kind of surprised no one has mentioned this.
GCC
From my experience, as well as other articles I have read (there was a Dr. Dobbs article comparing GCC compiling performance and code peformance to MSVC6/7, BCC, Digital Mars, Open Watcom, and GCC was near the bottom on most benchmarks), GCC just ain't that great at producing really fast binary code, whereas MS has spent considerable effort to make their compilers produce very fast code for windows.
I'll bet that if a major effort were made to improve GCC code, then this might make a big difference.
I'm sure there are some consumers who buy windows based on other criteria, but the vast majority of windows purchases are as a consequence of compatibility. If the actual statistics showed only 99% of retail windows purchases were as a result of pre-installation, that's about 0.999% less than I would have expected.
$.02
Key to financial independence: Spend less than you earn. Save and invest the difference. Do it for a long time.
There are two kinds of speed: things that are fast and things that feel fast.
The article and the comments here on /. are mainly talking about true benchmarkable speed. Things that are fast.
But some apps don't really need to be fast. They just have to feel fast. This holds true for most interactive applications. It's all about psycholigy with this one.
Ever wondered why Windows Explorer builds up its icons from the right bottom to the top left? Doesn't matter in real speed, but it just feels faster. Your brain just isn't used to this flow: usually you read from the top left to the bottom right, or you read from the top right to the bottom left. Your eyes immediately focus on the spot your brain expects the icons to appear. But instead the appear in the opposite corner. By the time your brain figures out it has been tricked, the window is already full of icons.
More tricks: ever wondered why windows wastes memory by trying to have some free memory ready all the time? It makes starting new apps faster. But on average the system is slower.
In the Unix world there is only raw, benchmarkable speed. And that's why KDE and Gnome are slow. They aren't slow, they just feel slow.
This is your sig. There are thousands more, but this one is yours.
This discussion is pedantic.
Sure - speed is good,
But the speed of application is simply this - they must be fast enough to be tolerable - no faster.
customers are not going to choose a product which makes drastic speed enhancements at the expense of features - provided those features can be run at reasonable speeds on available hardware.
Rather - there are features out their waiting for hardware speeds to see the limelight.
Voice recognition is often touted as waiting for higher CPU speeds.
So is Live renderings - (when you watch a movie by rendering each frame in real time from the actor and motion files alone.)
Add to this teleconferencing, cryptography, etc
selling software amounts to a compromise of features to speed - and the right compromise is as close to the edge as you can get away with.
The guy with a two feature database that runs like bloody hell is not going to beat Access - even if it is occassionaly slower.
AIK
Great, but how do you synchronize changes to the RAM disk to the hard disk? What do you do when you want to install a new app or apply an OS patch or whatever? Sounds like a big PITA to me. I'd rather just stuff my machine with RAM and let the VM do all the work. The peformance gain is about the same and it is way more efficient overall.
-matthew
"THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
Games.
They are fine so long as they remain optional. There are times when a transparent window has functionality beyond just looking cool. The ability to see what's printed in the window behind the one you're typing into is useful when reading a manual (in the form of on-line help or a web page), and using that manual to decide what to type into an editor or shell prompt. (This is the same reason I hate systems that force the keyboard focus window to always be the topmost window. Ever since I first felt what it was like to have the two decoupled, using Sun's openView system in 1992, I never wanted to go back.)
What really bothers me, and it is the main reason I have stopped using Gnome, is this: Developers often assume that the moment the computers get fast enough that they can respond to fancy graphic requests using 100% of the CPU time, that this is the point where all reasonable people would stop complaining about the time they take up, and would be happy to have the little graphic toys unconditionally turned on at all times. This I call "bullshit". It's only when the fancy graphic requests end up taking a teeny, tiny fraction of the CPU time that it starts to become acceptable to leave them uncoditionally on.
I don't just want fast response from my UI when the system is under light load. I also want fast response from my UI when there's a runaway process I need to find and kill, or when I'm calculating some big raytrace in the background. So, yes, even in this day and age where you can't find a new computer with less than a Gigahertz clock rate, it is STILL worth it to provide the user with the ability to turn off features that require a good amount of CPU usage.
It's up to the owner of the computer to decide what to spend their CPU time on, not the maker of the UI.
Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.
Actually, Quartz does an extremely good job of displaying 6.2 megapixel images on the desktop even on slow and old Macs.
.5-1.5Mpix range) screen?
Dare I ask what is the point of putting a 6.2Mpix pic on a 2.3Mpix (for the 23", in reality most macs are in the
The point is that it's easier to have the computer automatically resize it than it is to do so manually; after all, this is the kind of thing that computers are for: doing boring tasks behind your back so you don't have to think about them.
Mod down posts with a "Free Mac Mini/iPod" sig, they're spam!
I'm all for linux, but it's much easier to get windows to do what I want than linux. You can convince yourself the only people with windows are mindless sheep, but it's a very usable OS for lots of people. I use computers all the time (I'm a professional open-source-based developer), and I only use windows as my desktop (granted, my servers are linux). Every once-in-a-while I'll see how the alternative apps on linux are doing, but they're still behind. Heck, I'm using homesite 4.5.2 from 2000 and it's better than any editor I've found in linux.
I'm not having a go at linux, or trolling, but trying to make people understand that even though people here hate windows, it's still a very functional operating system. My desktop machine at work is up months at a time, rock-solid. It does dual-display (twin 19" tfts on one geforce4) out of the box. I know you can do everything it does on linux, but it takes longer and is more difficult.
I'm rambling. I'll shut up now.