pi_css5: Software benchmark

Now that MacOS X runs on Intel processors, there’re a wide variety of ways to run non-native software. Which ones are faster?

Performance is measured is the number of seconds to compute 4 million digits. Relative speed is simply the number of times faster than the baseline a result is. All the binaries used are available on the pi_css5 main page.

Below is a comparison, run on a 1.66GHZ Intel Core processor, under MacOS X 10.4.8.

Parallels and VMWare are both virtualization solutions, meaning they can run x86 OSes at nearly native speeds, although depending on the OS-virtualizer combination, some perform better than others.

Rosetta is an Apple technology for running old Cocoa and Carbon applications built for PowerPC processors. It is somewhat analogous to the 68K emulator built into the Classic MacOS when the first PowerPC Macs came out.

For Classic Mac applications that don’t run under Rosetta (because they aren’t using the Carbon APIs), you have two options, SheepShaver which emulates a PowerPC Mac, and Basilisk II which emulates a 68K one. Both have limitations (Basilisk II couldn’t even run the test here).

Finally, both Java and to a lesser degree C# offer the promise of compile-once, run-anywhere. For simple applications like pi_css5, this can work, but there are obvious performance implications.

pi_css5 version, and software environment Performance
(in seconds)
Relative speed
Mac OS X
MacOS X 10.4 Native executable 37.25
24.34 Bench
VMWare Windows
Windows XP under VMWare Fusion 41.97
21.60 Bench
Windows Parallels
Windows XP under Parallels Desktop 43.75
20.72 Bench
Haiku VMWare
Haiku under VMWare Fusion 43.86
20.67 Bench
BeOS under VMWare Fusion 55.41
16.36 Bench
Apple Java
Java under Apple Java 1.5 57.83
15.68 Bench
C# under Novell Mono 1.2 98.61
9.19 Bench
Core Duo
Mac OS X 10.4 PPC executable under Rosetta 105.56
8.59 Bench
Sheepshaver JIT
MacOS 9 under SheepShaver with Just-In-Time compiler enabled 377.84
2.40 Bench
Sheepshaver JIT
MacOS 9 under SheepShaver with Just-In-Time compiler disabled 906.63
1.00 Bench
MacOS 7.5.5 under Basilisk II (crashed)