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."
...to make OS X faster is to stop having it render the GUI through Photoshop filters.
You've got to be kidding me. XP is CRAZY slower than 2k. I suppose thats what happens when you add a Microsoft+ package to Windows 2000. Wanna make it faster? Disable all the useless services and shut off the ugly eye candy. *sigh*.
adventure-today.com
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
Hard Drive
Largest bottleneck in any modern system. If you've never had the opportunity to use a 15krpm (or something faster) system, do it now. It flies... I don't care if it is Windows or what... it doesn't matter when you've got usable bandwidth to the biggest chunk of storage out there.
Life is the leading cause of death in America.
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.
I haven't looked into it for a while (mod me down for being uncertain if you like), but I seem to recall that there were serious leaps and bounds still left in OSX performance, with a change to the ABI register use, potentially, in the future
; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
Check out www.blackviper.com, it's one of the better sites dedicated to tuning and increasing performance of Windows 2000/XP
More hamsters!
"If being a geek means being passionate about something, then I pity those who aren't geeks." - Pike65
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.
And the fact that I won't be discouraged from keeping 10.3 or 10.4 on that system if the next version doesn't support my hardware through annoying EULAs.
I'm in the hole of the broadband donut.
I wish these were incorporated into linux more. I don't care what anyone says, comparing windows and linux on the same machine has always shown to ME that windows seems a lot faster. Applications take longer to load in linux. Mozilla for example, takes longer to load than it did in windows on the same computer. Other applications that I can't compare directly seem to take a while when they're just small apps.
Aparently, windows caches a bunch of stuff and has a bunch other little hacks that allows this. So why can't linux and the kde people do this. They've copied everything else, why not this?
Before you mod me as flamebait or troll, I switched over to linux a while ago and I have no intention on going back to windows. I'm not some ms fanboy bitching about my 10 minute experience with linux. All I'm saying is that here are some points where linux annoys me.
1) Don't install so much crap on your computer. 5 megapixel photos set as wallpaper along with Real Player, Gator Spyware Crap, Quicktime Task, HP scanner registration reminder sofware, webshots, Norton anything, MS office bar etc running on startup will make your nice shiny new computer run like an arthritic snail on sleeping tablets.
2) Turn off some of the eyecandy. All those fades and whooshes and stuff don't actually do anything useful, they just consume CPU cycles and waste your time.
3) Use Ad Aware and SpyBot regularly to keep scumware out of your computer. I had to clean up a PC this morning which had stopped working because the BASTARDS at NewDotNet wrote some software which fucked the TCP/IP stack backwards.
4) Defrag regularly and run MSCONFIG to check what crap is sneaking back on to your Startup scripts.
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?
Sorry, but my karma just ran over your dogma.
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?
Apple, and other system vendors need to consider these types of management issues when making a change. Speed improvements are only good if they are "management friendly"
The number one thing they should do IMHO is reduce overhead. Using Microsoft Windows as an example, windows 98 has much less overhead than 2k, which in turn has much less than XP. A lot of it is eye-candy, which is all well and good, but those should be options that are OFF by default. XP differs from previous versions because it uses a 'shell' based gui (similar to KDE / GNOME, etc), which, while nice, is going to cause some system slowdown. Using the 'explorer' shell, which is heavily intergrated into the Windows OS, is the fastest, and should be the default. Then if people want to change it to look pretty they can, by sacrificing speed (in slower machines).
Stop adding services / features that are on by default, and you'll see a huge improvement in speed.
Anyway... You are completely correct but...
/usr, /opt partition, whichever one you have all of your applications installed on. Copy the hard drive to the ram drive at bootup. DD can do it quickly if you just zap the whole partition across. I think there are mount options to tell the Linux filesystem buffer not to cache a particular filesystem.
My 2 words are RAM DRIVE. You think you can't justify 4Gb of RAM? Course you can.
Dedicate 2-3Gb of it to a ram drive and mount it as your root,
The difference in performance can be stunning.
Government of the people, by corporate executives, for corporate profits.
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?)...
Download yourself the latest cutting-edge gcc from the 3.5.0 branch on CVS and do a make bootstrap. Install this over your original C compiler.
Get the latest 2.6.7-preX kernel from kernel.org and configure it with no modules: everything build it. Modules slow you down.
Enable all the EXPERIMENTAL drivers. They are ususally much faster than the old ones that may have been in the kernel now for 6 or more months.
When you have saved your configuration, hack the top level Makefile to add "-O9 -fomit-instructions" in the CFLAGS macro.
time gmake -j64 bootstrap. Even if you have a single CPU system, building with lots of processes in parallel is faster because it soaks up CPU idle time when waiting on I/O operations.
Enjoy.
Stick Men
Early versions of some film scanner software that I worked on were terribly slow. A quick profile of the running code showed that about 10% of the time was spent in a little piece of code called TtoF(). This code parsed and coverted text into floats.
The earliest versions of the software did not convert key preference/calibration/setup files into internally stored numerical values -- instead, anytime the code needed a calibration/setup value, it went to the file, read it, and converted it. Needless to say, that "feature" was quickly corrected.
That's not as bad as an early VAX image processing program that prepped newly allocated file space by setting all the bytes to zero, one byte at a time.
Two wrongs don't make a right, but three lefts do.
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.
I worked there for years, through the development of Win95 Osr2, Win98, Win98 SE, Win ME (but that one wasn't my fault), WIn 2k, Win XP and into the first little bit of Longhorn... Longhorn will be as slow as or slower than the current XP systems, even when properly configured. We don't call it "Bloatware" for nothing. One way to make it faster is to cut out all the crap. If someone wants to install Solitaire, FANTASTIC, let them choose to do so, but for crap sake, DON'T install it by default... Fix the File Tables, Fat32 was good, NTFS is better, they say the new schema for Longhorn will be better, if they can ever get it working... If a user wants the colors and blinking things, then let them set it that way...don't make that the default... Just because a processor can hit 3.2 GHz DOES NOT mean you have to use every Hz of speed... Just because Hard Disks are not in the hundreds of GB, does not mean you must fill it up with an OS... Just because memory is "cheep" and some systems can handle 2 gig or more, does not mean you must use the whole thing to manage your OS... The system requirements for Longhorn are rediculous at best...when Longhorn ships, Linux will finally get the break it needs!
--E--
This is technically offtopic, but often much of the 'slowness' we still experience on our computers which people often blame on their 'operating system' isn't really down to the operating system (i.e. kernel), but more the higher level stuff that runs on top of it. It seems that lots of efforts are going into making operating systems more efficient, since there's lots of interest in this area, but that efficiency is more than lost further up. (Not that I should be complaining, since I'm just another person not doing anything about it.)
Try running Windows NT on a new Intel system (say 2-3GHz) for example - it'll run blazingly fast, and with software versions from around the same time it'll still do much of what everyone wants to do - email, web, office, graphics manipulation - but really much faster - things will load practically instantly, rather than after five or ten seconds, and it's all still nice and graphical and everything, just like people want.
Many (but not all) XP machines I meet still seem to take 2-10 seconds even to do basic things such as open My Computer, Internet Explorer or a properties dialog, which one has to wonder is worth the wait for the extra functionality - basically lots of drivers, a couple of extra bundled programs and supported file formats, minor changes to the interface and the other couple of things I'll get flamed for forgetting. Microsoft have no doubt made some improvements to the kernel between releasing NT and releasing XP, but most still seem to be no faster to use, if not slower.
I maintained a school network up until last year which still ran NT and KDE2 on around 2/3 of systems, and then when my replacement went and wiped everything out and replaced it with new machines running XP (with an enormous cost to them), many staff told me that there were lots of things that didn't work any more, and there'd be frequent outages of the entire network.
On a Linux+X system, running X on its own (i.e. just the one program you want) or with a light window manager (fvwm or whatever) is again noticeably faster than running Gnome or KDE. Loading Mozilla or OpenOffice.org means loading the entire frameworks they run in, and often we're loading up a great deal of functionality we don't want in that particular situation. I think a good example is Dillo, a web browser written entirely in C that just does the basics (launches in around 0.7 seconds on this Athlon 700 system, compared to Mozilla, which takes around 5, and Mozilla Firefox, which isn't far off that) - it'd be interesting to see if they could add things like CSS or SSL support and still keep it fast.
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.
Has anyone tried using a RAMdisk as their OS drive?
Many moons ago, it was possible to make a RAM disk on a Mac, install an OS on it, and (warm) boot from it. It would remain in memory and work perfectly as long as the computer wasn't shut down-- it could only be restarted. I tried it once or twice just to check it out, and the computer booted and ran like lightning compared to the normal hard drive boot.
One of the utility suites back then (Central Point Utilities?) even had a feature where the machine would boot from a RAM disk with the utils on it, to fix the occasional really serious Mac problem.
Booting from a RAM disk stopped being possible after Apple made a hardware change in newer Macs that had the side-effect of making the RAM non-persistent through warm-reboots (i.e., your RAM disk would go bye-bye). I forget exactly when it happened... perhaps after the first generation of Power Macs, when they went from using NuBus to using PCI?
Here's another interesting fact. The Macintosh Classic, released in 1990, had System 6.0.8 (IIRC) burned into its ROM-- you could boot it disklessly from the OS in ROM by holding down Command-Option-O-X at startup. Nobody really knows what that feature was intended for.
~Philly
Filesystem journaling does not make the filesystem faster, and it's silly to suggest that it does.
In fact, journaled filesystems are generally noticeably (one might say significantly) slower than non-journaled ones.
The only 'performance' gain one gets from journaling is after an unclean dismount (a crash or power outage). The system will boot up much quicker, but that's it.
Here's a "mini-HOWTO" that I found via google. I didn't read the whole thing, but it looks informative. Wikipedia's Ramdisk entry had links to two stripped down knoppix distros that could be loaded into a ramdisk - Damn Small Linux (50 mb), and Feather Linux (64 mb). I've never done anything with ramdisks (I'm a linux newbie, too) but they do sound pretty neat.
Do like IBM did with OS/2's big revision Warp. All the changes to Warp slowed performance down in general so IBM used smoke and mirrors. They worked on speeding up screen I/O as much as possible. End users raved about how fast Warp was. Looks faster, feels faster, but any program that required much prcessing was getting slower and slower. But joe user thought he had a speed deamon becasue the screen painted real fast.
1. turn on apple II series box.
2. Press Ctrl+break (? it's been a looong time since I used one).
3. You're done.
It takes under 2 seconds. Show me a "new" machine (see: desktop,server or notebook from the last 5 years) that actually boots that fast, please! (not just turns on the monitor)
stuff |
Apple computers do not hibernate. Rather, when they "sleep", enough devices (in particular, the dynamic RAM) are kept alive (at the cost of some battery life, if the computer is running on battery power). Consequently, upon wakeup, the user perceives instant-on behavior: a very desirable effect.
I don't know how they can be proud of not hibernating. Windows can sleep OR hibernate. Although being a Mac household, hibernation is one reason I MIGHT consider windows for my next laptop. The ability to get back to all you have left around with your laptop hibernating for a few days unplugged and still have full battery power when you open it up is VERY nice.
device=himem.sys
device=emm386.exe noems
files=40
buffers=10
smartdrv c+ 10000
There are a huge number of yeast infections in this county. Probably because we're downriver from the bread factory.
Whenever you install new software, you have to wait while the system "optimizes" it, which in fact means checking for applications that need their prebinding redone. On a 700MHz imac - less than 2 years old - this sometimes takes 15 minutes or more. Since I bought it, I've wasted hours, if not days, waiting for installations to complete because of this, which is far longer (and more frustrating) than the total time saved starting programs.
I don't understand why it doesn't just leave the prebinding to be done the first time the program is run.
Step 1: Buy a G5 Mac.
Step 2: There is no step 2!!!
Paizurishitetai desu ka?
There are easier ways to enable these "features" than creating a ton of hoops for BOTH sides of users.
What fucking hoops?
Right-click My Computer->Properties->Advanced->Settings button.
Choose either "Best Performance" or "Best Appearance." Or check each option individually. What a non-issue.
If this was KDE, someone would have already answered with this, but because it's Windows, everyone just nods with the rest of the flock, "Baa, baa, yes, there are hoops to jump through, baa."
Speaking of KDE, talk about fucking hoops. You've got a completely horrible control center, with three different areas for changing the looks of things like window styles, widget styles, and so on. Why the hell isn't that all integrated into one configuration dialog? Oh, I forgot, ease-of-use is a criticism we only reserve for non-issues on the Windows platform like checking a radio button to get rid of a blue theme.
"Sufferin' succotash."
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.