• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

OS X/Windows XP Question

aplefka

Lifer
What is the difference between the way a machine on OS X processes a task versus the way a machine on Windows XP? Obviously the file formats are different but what does that change as far as the CPU's work goes? I'm curious because I asked about PearPC in Software and was told there would be a huge slowdown in performance because the emulator would have to convert the process first before executing it.

Also, how is OS X more CPU-efficient than Windows XP? From what I've read in Mac World, it seems that OS X is much less RAM efficient than XP, so is it just a tradeoff of some sort? Less CPU needed but more RAM?
 
On the ram thing, actually it may be "less" ram effecient but is a hundred times more hard drive effecient. All the stuff is offloaded onto ram at boot, and they rarely access their hard drive.
 
Apple-based and x86-based machines are completely different animals. Apple CPU's have always been RISC devices, x86 were CISC. A few years ago, x86 moved to a CISC front-end, RISC backend hybrid design. Any kind of emulator for any computer will have some kind of bogus performance. Either it will be too slow, or it will be Error City. I think MAME might be the only good one.

You can't really compare the two because they are so different.
Having said that, Apple has the luxury of coding to a much more limited hardware base. Part of Windows' inefficiency is that tries to be all things to all devices.
The best Apple software traditionally is optimized for the Apple format. This may be changing, Photoshop is more Windows friendly now that Apple pushed out Final Cut Pro, essentially biting the hand that fed it.
OSX is UNIX-based, and that itself may bring a much more efficient process, especially when tuned to a specific chip.

check out the Mac vs. PC thread
 
The reason PearPC is going to be so slow has nothing to do with the OS you're running on it. You're emulating an entirely different CPU architecture. Doing that takes whole gobs of CPU power.

On the other note, what OS X does is it caches all the data it thinks you'll need in RAM. This is actually a lot smarter than the way XP does it. If the OS is right with the data it caches, you'll hardly ever have disk accesses, which are much slower than RAM accesses. If you want to load a program that takes up 30MB of RAM and the cache is taking up all but 5MB, no big deal, just dump some of the cache. It was just there as a best guess anyway.
Windows XP has a similar cache, but it exists in the hard drive. This basically does away with any good the whole idea might do. Why would you make a 500MB cache on the swap space of a hard drive when you're only using 1/2 of your available gigabyte of RAM? Put that cache in the RAM and speed everything up. If need be, dump it on the HDD later. The way Windows manages memory is more efficient that OS X on low-memory systems, but on anything with over 512MB of memory it's basically wasting it most of the time.
Other OS's do this as well. Running KDE on Linux on a machine with 1GB of RAM usually uses all but 100MB or so. It's a much smarter way of doing things most of the time.

Just one of my personal gripes about Windows...
 
The Windows XP and OS X process the tasks in memory in almost the same way. However, because the microprocessors are not compatible to each other, any kind of emulation will be awfully slow (no matter if you want to run x86 code on Apple or Apple code on x86). MAME is also awfully slow, however it is fast enough (or even too fast) to emulate computers/game consoles from 25 years ago. Not the same can be said about current generation software.
 
The only solution to this kind of problem would be some kind of Java architecture - when the program is platform independent and is interpreted by a native interpreter (a process that is optimized for the platform it runs on)
 
The instruction sets of the CPUs are different. SSE and Altivec are very different technologies, too.

Another basic difference is the byte order of the CPUs. While the x86 architecture is little-endian, the PowerPC is big-endian. (Look at Wikipedia for a more detailed explanation). In fact the G5s lack of the so-called "pseudo little-endian mode" CPU feature (which was part of the G3 and G4) urged Microsoft to rewrite big parts of its Virtual PC Windows emulator for Mac.
 
Thanks for the answers guys, I knew some of the basics but not too much in-depth. And Rossfool, thanks for that amazing conclusion. 😉
 
Okay, this may change the thread a little bit, and is probably a stupid question, but is there a way you can change how much of your RAM is used for caching and how much of your hdd is used for caching? Like if I made my allotted page size bigger is that going to have an effect? I've got 1.5 gigs but honestly it feels no different than using 512 megs and I'm kinda disappointed.
 
Thanks a lot. I have been checking back here but no one seems to have been able to answer my second question.

Also, why does this fall off the face of the planet whenever it's off the first page? And why is there only one page of posts? 😕

Thanks again.
 
Originally posted by: Calin
The only solution to this kind of problem would be some kind of Java architecture - when the program is platform independent and is interpreted by a native interpreter (a process that is optimized for the platform it runs on)
Java code is compiled into Java assembly.. when the program is started, the vm translates the java assembly into machine code. when a program is run on an emulator, the emulator reads the machine code from the file and translates it to an equivalent set of instructions for the target system.. both are virtualizations. how exactly would this solve the problem? obviously, Java is more efficient with it's translation.. but nevertheless Java is still pretty damn slow.
intel will be coming out with a technology (already in servers) that allows for hardware-based virtualization.. you won't be able to run a different instruction set, but it will allow you to run 2 os's concurrently.
The best Apple software traditionally is optimized for the Apple format. This may be changing, Photoshop is more Windows friendly now that Apple pushed out Final Cut Pro, essentially biting the hand that fed it.
well.. can't really blame apple, adobe was the one that whored them first. photoshop used to run best on apple platforms, like you implied.. but then one day pc systems pulled ahead of apples for a photoshop that was native to os x. several sites and magazines posted the results. apple knew this.. a lot of people knew this.. adobe obviously knew this. so, what does adobe do? they post the results showing that the PC system runs faster than apple on their website.
 
Back
Top