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
Moshe Bar has written an article at Byte in which he benchmarks and compares performance between Mac OS X and Linux at various tasks on the same hardware.
I run OS X on several machines. The one I'm using now is the slowest I really use (a 400MHz G3), and it's fine with 512MB of memory. With 128MB it's slow. More didn't make much difference for common stuff.
:-)
In fact, it's deceptively responsive. I use a G4 733 at home, and sometimes forget how slow this thing is- until I do a big compile or something.
For ordinary GUI stuff, it's OK, but some programs that aren't really OS Xish (like Mozilla) sometimes have noticeable screen updates.
ab
It will take an extra minute to boot up but all your OS 9 apps will run immediately.
When talking about OS X 10.1 was slow on my G4 Tower 733, 10.2 is lightning fast (another reason it should have been a free upgrade to 10.1 users).
OS X is fairly memory intensive. Anyone interested in speed should, IMO, max out their memory. After all, moving from the minimum amount of memory (128mb) to the maximum (640mb) on the low-end iBook costs you $200 and is well worth it.
Also, with Quartz Extreme adding additional amounts of video RAM seems to make a difference, since the graphics card is doing a lot more work in day-to-day life. 32mb seems to be noticably better than 16mb, with diminishing returns expected as you go up.
Just my opinions, yadda yadda...
You're special forces then? That's great! I just love your olympics!
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...
My 700Mhz iBook running OSX 10.2 is quite snappy with all native apps, especially the ones I compile myself. It feels comparable to my 1.4Ghz Athlon running Redhat 8.0.
If you run MacOS 9 apps in compatibility mode, the feel is more sluggish, but that's to be expected. Emulation almost always degrades performance.
Openoffice.org for MacOSX is quite nice, BTW.
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.
Typically, I see the OS X behave slowly in Finder more than anything else. Within applications, I don't see much (if any) performance hit, but when switching to finder or minimizing a window, OS X can be very slow sometimes. This has improved a lot from 10.0, but it is still MUCH slower than OS 9.
Application launch time is another area in which Apple needs to work on. They instituted a new pre-binding mechanism into jagwire, but it has had very little effect on launch time.
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.
It gets even worse when your off-screen drawing touches every pixel in your window. Apple encourages apps to do this, of course, by offering particularly gluttonous Aqua features like brushed-metal windows (Extreme has no way to ask the graphics hardware to chew on a full-window gradient, atop a texture, being rendered to an offscreen pixmap). Don't believe me? Fire up Quartz Debug (part of the developer tools; allows you to ask Quartz to highlight update rectangles before they're painted) and see for yourself.
I'm confident that Apple will continue to make improvements, but right now apps like iCal (which shouldn't be computationally intensive, but is all hopped up on Aqua) are miserably slow in screen updates.
That's almost hard to believe. Perhaps the kerberos software they're running has fscked the computers. My computer has much much less than half the processing power of a flat panel imac, but I've never had that kind of problem.
Not that it isn't slow... it just isn't *that* slow.
There are no trails. There are no trees out here.
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
Manual prebinding is no longer needed in 10.2. The first time a non-prebound app is launched, the OS will quietly prebind it behing the scenes, so the second launch will be at full speed.
Of course, many installers will still do it on install. This is kind of irritating if you have to do a lot of installs at once, like update a stock install with all the updates.
My video compression blog
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
Whoops. Sorry for not hitting preview and screwing up the link. Java 1.4.1 for OSX Note that you must be a ADC member. But registration is free. To register go to Apple Developer Anyway Apple has been working hard to improve the speed of Swing.
I also don't like that Mac has Java 1.3, and from what I can tell, you are fixed at that until they decided that they will upgrade it in their own release, regardless of the fact that there is 1.4x out for sometime now, which actually has a lot of things that some of us need and use.
I don't think anyone would complain if Sun or someone else would release an implementation of Java for Mac OS. No one is stopping them. Just because Apple supplies a JVM doesn't mean that no one else could. If you want someone else (such as Sun) to release a JVM for Mac OS, then go bug them about it.
Apple currently has a Java 1.4.x release in testing. Registered developers can download it free from Apple's web site. Just go to the developer login page and sign up for a free membership. Why did it take so long for them to get 1.4.x ready? Well, from what I understand they decided to rewrite the Swing implementation from scratch (in Cocoa rather than Carbon) which understandably took some time.
-- Tim Buchheim
I bought one of the 500MHz iBooks shortly before the 600Mhz iBooks were released (D'oh!), and it was a bit slow until I stuffed an extra 512M into it. Since then, I've been using it for development work, lots of compiles, lots of testing, and it is just great. My G4 tower is faster, but I do not find myself wishing the iBook was faster when I'm on the road (which is a *lot*, unfortunately - what I find myself wanting is more pixels. :')
The one time I do notice a lack of zippiness on a Mac is when I thrash the cache. Unfortunely, OSX seems to have a unified buffer+page cache, which means that I/O and virtual memory compete with each other head to head for physical memory. So if you have an app that runs through a gigabyte file, all the programs that weren't running at that time wind up swapped out, and it takes a while to get them back.
This is something Apple could probably fix with some intelligent tuning - it's exactly the same problem Sun had in the early versions of SunOS 4. I do hope they fix it soon - it's a bit of a drag.
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"
Actually, YOU are believing in the Mhz myth just as much as everyone else. Mhz doesn't mean much of anything - somewhat regardless of the pipeline as well (branch prediction can make up for longer pipelines, for example). What does matter is real world performance, and in certain area's G4's are way behind Athlon's and P4's. Altivec is great, but only helps in very specific area's (Like a Guassian Blur) but due to poor memory bandwidth can't be used in larger, more practical uses.
Finally, The Man Mr. Carmack has this to say about G4's, how a P3 _can_ be faster in certain area's, and how Altivec is not relevant for apps like games (although on x86 SIMD is very important for games). Read more here.
BTW: I think Apple has done an incredible job with it's hardware of late. I'm a Windows guy myself but for normal "desktop" users I've been continually recommending the G4 iMac's as they are great machines. G4's are fast enough for many applications and I don't feel that Mac's feel slow at all (assuming OS 10.1 or 10.2). However, I do know that when I want speed (eg: for games or 3D rendering) I'll go x86 for almost twice the speed at a fraction of the price.
There is no longer anything that can be done with computers that is nontrivial and clearly legal. -- Paul Phillips
It isn't old code.
>>>>>>>>
Yes it is old code. Mach 2.x, mostly 4.4 BSD. How much improvement do you think the Apple engineers could have improved on that code base given Apple's situation before OS X was released? Of course, code doesn't rot like wood, but machine performance characteristics are very different now than they were when the code powering OS X was designed. Take a look at the Linux kernel code. There are all sorts of optimizations that depend on the general performance characteristics of the machine. These have changed, and as a result the OS X code isn't optimal for modern systems. Beyond that, there is the fact that huge improvements in VM design and microkernel performance have been introduced since Mach was designed. OS X largely lacks the advantage of those improvements. The fact that OS X is slower isn't in question here. The benchmarks are nice and simple. What I'm doing here is explaining *why* the benchmarks as are they are.
Second the BSD kernel is in the same address space as Mach and is compiled into the same file.
>>>>>>>>
Doesn't change the fact that the layering involves a layer of redundency and abstraction that hurts performance.
Further, what version of xnu you were you guys testing with? xnu has gone through a massive amount of development.
>>>>>>>>>>
10.1.5. Not 10.2, as mac-heads say when I point it out, but if you'd read the changelogs, you'd realize that the GUI was the focus of 10.2 development, not the kernel.
You can find numbers here
http://clustermonkey.org/~laz/pbook/
A deep unwavering belief is a sure sign you're missing something...
: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.
Another interesting tidbit to read (use login/pass "archives", without the quotes) is this.
Donate free food here