Is Mac OS X Slow?
Junks Jerzey asks: "Every time there's a mention of Mac OS X on Slashdot, there's a flurry of responses about how unbearably slow Mac OS X is. To anyone who has done software development under both Mac OS X and Windows or Linux, is there any truth to this or is it simply a knee-jerk reaction from non-Mac users who see low numbers like 800MHz. I'm talking about average priced Macs here, like the LCD iMac line, not the dual 1.25GHz machines that sell for $4500+." Having the fortune of using a Titanium Powerbook for over a month, I don't find Mac OS X that slow at all, however, there are some things that do take a little longer than I am used to, but I think these things are application-specific. For those Mac OS X users out there, have you noticed operations that seemed slower using Mac OS X compared to similar operations on other operating systems?
but that's because most of the apps I support are only supported in Mac OS 9, so I have to wait for the OS 9 emulation window to open up, slow, slow, slow.
A good test would be with native OS X applications, compiled for OS X and not just emulating OS 9, but that's going to take a while.
A. Rightmann
For people who want to bash and criticise OS X, then of course it's TOO SLOW.
For people who enjoy and love OS X, then it's not all that slow.
There is definitely a class of people who need or want speed but don't have it, and they think OS X is slow. The hard part is figuring out whether their views and circumstances resemble yours so that you know whether to accept or discard their perception.
My view: OS X on a 400MHz G4 is fine. Applications my have a performance constraint due to slow CPU speed, but actual navigation of the OS is not a problem.
I also run OS X on a 933MHz G4. With a GeForce2, 768MB ram. Runs fine.
Slow always depends on how you define fast. Web browsing rendering is a tad slower and less optimized than under Windows, but on the flip side the HTML engine isn't integrated into the OS either.
And you really can't trust Microsoft to create a better browsing experience under OS X than under Windows XP, can you?
I use Mozilla just fine, though.
GPL Deconstructed
As I'm sure many of the people about to post here do, I use several different OSs during the course of my day. Once I leave work, I rely on OSX for me personal machine. Even with 10.1.5, almost everything seems faster than any flavor of Windows that I come into contact with. My home machine is a "lowly" Dual 533 G4 with a Gig of RAM, and it consistently performs better than any of my other machines... ranging from a dual 600 Pentium w/ NT4 to 2GHZ AMD w/ XP. I am running mostly Multimedia creation software, so maybe that's where the results come from... Anyway, OSX is plenty fast... except for some strange spinning beachball zone-outs at weird times. To be honest, even though I am one of those Mac people that will break a bottle on the bar and hold it to your throat for bad-mouthing my system... I am perfectly functional with Windows going all the way back to 3.11. Bottom line: OSX on a sufficiently pumped up G4 will get the job done, and get it done pretty quickly. Now back to the impending flame war...
Someday a real rain is gonna come...
Remember, these comments on OSX all based on 10.1.5, not 10.2 (Jaguar.)
O'WONDERWe're working on it.
Simple file moving operations can take FOREVER if you are moving around hundreds of files. Though I haven't tried it, I am sure that from the command line, it could be a blink of the eye.
.zip files, and move them to another folder that already contains 3000 MAME ROM .zip files. Some may exist already and need to be overwritten and some files are new ones.
Example: Select, say 600 MAME ROM
An operation like this on Windows takes very little time to do. MacOS X can take many minutes to do the same. I don't understand why. This is on a G3 500Mhz iMac DV w/1GB RAM.
The underlying OS is very fast. The GUI/Finder needs all the help it can get. Even after 10.1 and 10.2!
I swear by MacOS X. Although I use to swear *at* MacOS 9...
It is still missing some features I like and is obviously still under development. But the recently released 0.6 version is pretty amazing.
On my G4, with classic running, OS X takes a big hit and gets kind of jerky. I'd say, if you're not useing a classic app constantly, to leave it off. It boots in about 10 seconds anyway.
"A language that doesn't affect the way you think about programming, is not worth knowing" - Alan Perlis
AFAIK, OS X is late-binding by nature, but there's a way to speed it up by pre-binding. This process allows apps and libs to be loaded without resolving symbols in other binaries.
In versions prior to 10.2, this was a manual process, usually run by the Installer app after installing a new package.
10.2 updates prebindings for a new app automatically when it's launched for the time. There's a caveat: if you have multiple partitions, only apps on the boot partition will be pre-bound automatically.
See the manual pages for update_prebinding(1) and redo_prebinding(1) for more info.
For the record: a clean install of OS 9 has the illusion (note my word choice) of being about twice to three times the speed of Mac OS X if you have been in OS X for a length of time. This is true pretty much regardless of what machine you are installing on. On the other hand, it also has about the architectural maturity of Windows 3.1, and if you start installing a ton of extensions, its speed starts going down the tube. This is why you see OS 9 as slow and others see it as fast.
Memory Hog? That hasn't been my experience. I was just ripping a CD with iTunes while I was mucking around in terminal, system preferences, and the network utility. Ok, I obviously wasn't doing anything very memory intensive but still, I had tons of physical RAM available. I found that having lots of RAM was more important for OS 9 than 10.
With OS 9, the virtual memory was so crappy I never wanted it turned on. I would keep my mac maxed out in ram and have virtual memory completely disabled. I'd also have to crank up the memory allocated to the indivudual apps I was using quite frequently. This combination ate soooo much RAM.
With X, my memory problems have pretty much disappeared. I ripped out most of my RAM and threw it into my PC. I don't think I'd want to run with less than 256 but I don't see much of a performance gain when I crank it up to 512MB or a gig under normal use.
Mac OS X isn't actually slow but has a lot of technologies that have got a bad rap (though they didn't always deserve them).
Mac OS X is based on a Microkernel - now everyone agrees these are slow, right? Well, sure I can see where that's coming from - but Apple have gone to great lengths to make this as fast as possible without losing the benefits. So the Kernel isn't actually slow, it compares well with other BSDs and Linux.
The Mac is only 800MHz(ish) for low end machines so it must be slow? This is the classic "MHz Myth" the G4 has a short pipeline (a good thing) and executes over 90% of it's instructions in 1 cycle or less (the modern definition of RISC, TRIVIA: the old definition was implements less the 100 instructions). And then there's the amazing AltiVec (which Apple call the "Velocity Engine", if you see these terms they refer to the same thing). Macs have blistering real math performance (the G3 iBook doesn't have the AltiVec).
Macs are based on Objective-C - that's REALLY slow. Well sure if you just implemented Objective-C without optimisations then it would be slow, but NeXT (them that did the Objective-C implementation) didn't do that. They added a method lookup cache which speeds things up a great deal, and IMPs that can be used in tight loops to gain extra zip (healh warning, IMPs are not ususally needed and can cause stunning bugs if you're not careful with them - unless you have a large tight loop that REALLY needs speeding up - don't bother with IMPs). The use of allocation zones can also speed up the VM system a great deal (these aren't as troublesome as IMPs can be, but again aren't as often needed as you might think). The Kits make heavy use of these tricks so they are pretty fast.
Quartz has lots of tricks to make it fast, and now all current Macs can make use of Quartz Extreem (uses the compositor on the GPU to dramatically speed up the whole windowing system).
So no Macs aren't slow. Apple's site includes server stats and they are very impressive too.
But the implementation details aren't widely understood so a lot of people's initial reaction is "Oh that's gotta be slow" - it really isn't.
The "binding" you're talking about is for function calls to dynamic libraries. The "binding" that the original poster is talking about is Objective-C method calls in general. Updating the pre-bindings in Mac OS X won't get rid of late-binding in Objective-C. It has nothing to do with it. Pre-binding just calculates where a function will be at run-time so the caller doesn't have to figure it out on their own. Late-binding in Objective-C is where you don't know what type of object you are interfacing with but know the partial (base class) interface. The reason why you don't know its type is because it's determined at run-time. Again, updating the pre-bindings has nothing to do with this.
It's plenty fast, but not as fast as I wanted. So I sped it up. Here's what I did for my machine; some of it is what I routinely do to other people's machines. ymmv. ymmm. yumm.
/System/Library/StartupItems. Say Goodbye crashreporter, appletalk, and rendezvous. I was nice and had my modifications listen to /etc/hostconfig, in case I wanted to re-enable them quickly, at a later date. Most other people need networking, I've noticed, but I just need scp and ftp. ;P
First, I advise all 10.1.x users to upgrade. Then again, I work for a school, and teachers can get 10.2 for free. It's worth it. I don't care that it should be free. If you want better performance, stop griping, or run OS9. OS10.0 and 10.1 are not optimal for ordinary use.
make sure you're following the recommendation for Video RAM -- 16MB, Quartz Extreme pretty much needs it. If you can't upgrade a card, cram as much memory as you can in there, you will need it.
I wouldn't attempt to use a OSX machine with less than 256. All power users get 512MB by default.
There's an option on the installation disk (under the disk utility option, maybe?) that will reset permissions on the OS. I've noticed this would speed up a slower computer; it takes about 1/2 hour on my laptop.
Turn the machine off once in a while. I suspect OSX's memory garbage collection isn't as good as it could be. I reboot the laptop about once a month, (after I've had a finder crash, usually).
if you've got a laptop that isn't on at 3 in the morning, run the periodic files (i.e., let cron do its thing). Someone released an app that does this for the shell-feary; I forget its name. Google loves you.
Use a valid hostname. Something called "Foo's Computer" isn't valid DNS, even though it's the default (bad apple!). This will affect how long it takes to connect to the network, esp. at boot time. Having DNS entries (and reverse DNS) helps a bunch, if you're using DHCP (there are opts in bind to autofill this for you). Valid hostnames include a-z, 0-9, and "-". Have fun and be creative.
Disable what you don't need. I edited the scripts in
prebinding question. Run as root (use sudo, or, um, use root)
update_prebinding -root / -force
And wait for a bit, watching a bunch of errors spring up because the printer apps weren't prebound. You might want to do an output redirection (add something like 2&>1 ~/prebind.log to the command [or is it 2>&1?]) if you want a record of what it did.
here to help,
mike
yes, they use 2D hardware acceleration for drawing. So did Mac OS 9 (and 8, and 7) .. Quartz Extreme is something completely different. It doesn't accelerate drawing, it accelerates compositing
Quartz has two parts:
-- Tim Buchheim
CompUSA lists 115 available game titles. Surely some of those would be enough to satisfy you.
The unsig!
Actually, the kernel is slow. In lmbench (which measures the speed of basic UNIX kernel operations) OS X is half the speed of Linux. And the Velocity engine would be great...if the G4 had enough front side bus bandwidth to actually feed it. The AltiVec units themselves are very high quality, but because the average P4 has 3x the memory bandwidth (and streaming SIMD operations are *very* memory bandwidth dependent) it can't shine in the current G4.
A deep unwavering belief is a sure sign you're missing something...
They wanted to know if MacOS seemed slow to the users on mid-range macs. Not if it would be 'theoretically fast' based on the technology.
Basically what they really need to know is 'interface latency'. How long between when you click and when something happens. Things like Vector engines are not going to help this.
While the P4/Athlon and (I assume) G4 can all run more then one instruction at once (not just one) that's irrelevant, what is being asked here is if the OS is slow for the hardware it's running on. Win95 would be blazing fast on a p3-500 with 128 megs of ram, but XP would run like a hog on the same machine.
Since I seriously doubt anyone has any kind of actual measurements this is basically going to be nothing more then a page-view generating flamewar on slashdot.
autopr0n is like, down and stuff.
My wife's ibook 700 was pretty unbearably slow with OS X 10.2 . Blowing an extra $125 on 512MB of RAM fixed it real quick, though. It's a shame they come with 128MB standard, that really isn't enough.
I'm a professional software developer that had to port a large body of code from Windows to Mac. I've also done a signifigant amount of work on *nixes. The Finder interface in 10.0 and 10.1 is unbearably slow. I haven't had enough experience with 10.2 yet to make a call. The problem seems to be twofold, poor UI, and poor implementation.
You have to understand where I'm coming from. I'm no fan of Microsoft's practices or the stability or security of their code. And I am a big fan of OS X technology. A (mostly) user friendly operating system backended to a unix system, with all the unix tools and features I love. Plus I'm not railing on the hardware architecture or the OS core. Codewarrior on OS X beats the pants off Visual Studio on Windows in just about every category. But OS X's Finder, its front door as it were to someone like me, has some serious lacks.
I'm pretty fast in Windows explorer, I have to be navigating between hundreds of source files. I've learned just about all the shortcut keys and my hands move to wherever is fastest to accomplish a given task, mouse or keyboard. When I started working on the mac I was frustrated by the amount of mouse effort I had to expend. If my hands are on the keyboard and I need to do some UI navigation I don't want to have to use the mouse. I call that poor UI. I know there are probably keys there I don't know about, but they certainly aren't readily apparent in the help files. The tab between controls functionality windows has seems to be largely missing. I'm not incapable of learning new shortcut commands, I just need to be able to find out what they are without installing 4 third party applications that add them.
The seoncd part is that the finder is just damn slow. I don't care that its shiny and round and scales perfectly. I have a ~500Mhz G4 and thats more than enough power to make sure that simple tasks like moving files around and editing source code should never EVER have a perceptible delay. Sure, maybe Windows XP might be slow on an equivalently powered PC, but you know what? I can turn off all the UI crap that comes with XP. Not so with OS X. Its about as customizable as your grandmothers sofa, the one with the plastic covering you're not allowed to sit on.
Jherico
What can the average user can do to ensure his security? "Nothing, you're screwed"
:rolls eyes:
How did this clueless post get modded up?
Anyway you said:
No it isn't that version of Mach. Apple switched versions of Mach (3.0 OSF I think it was). The BSD code is much newer than what NeXT used.
You also wrote:
They did make significant changes to the kernel. I'm on the Darwin list.
Finally you wrote:
Yes it does. having the BSD kernel in the same file, the same address space, etc, DOES increase performance.
I will say this again, so it gets through your Linux biased skull, that the version of Mach is not 2.5 (the version NeXT used). Hell it isn't even the CMU version anymore.