Xcode on a 2010 Macbook Pro High Res with SSD

I just bought a new 2010 15" Macbook Pro and put in a solid state drive - OWC Mercury Extreme Pro SSD 240GB. It's to replace my 2007 macbook used all the time for iPhone development with Xcode. I picked the hi-res antiglare screen (1680 x 1050). The OWC SSD is a new Sandforce based model that is reported to not suffer from the precipitous drop in write performance common to many SSDs on the market. (I also considered using a Seagate Momentus hybrid drive.) Benefits of the new machine include:

  • Faster CPUs and hyperthreading, so CPU bound Xcode builds gets to run 4 parallel compiles at the same time for a big speed boost.
  • The SSD has blazing random access times thus speeding up all general use of the machine, including the compile-deploy-test cycle with Xcode and the iPhone simulator.
  • More screen space makes it easier to work with Xcode and the iPhone & iPad simulator on the road.
  • The machine can better keep up with demanding Instruments profiling.

Simple Benchmarks

Here are some simple stopwatch based benchmarks comparing new and old machines. Its much snappier all round, and definitely speedier for development work.

2007 Macbook Pro 2.16GHz 2010 Macbook Pro 2.4GHz i5
7200rpm HD 5400rpm HD SSD
Boot, from power on to desktop first appearing 30s 40s 24s
Launch Xcode 7s 6s 4.5s
Build complex iPhone project from clean 86s 48s 45s
iPhone sim & Xcode install & debug app 10s 9s 3s
Instruments open 30MB trace 11s 6s
Start Photoshop CS3 (1st time, 2nd time) 15s / 5s 5s / 4s

High-res Display

The high-res display gives more pixels within the same space, so GUI elements take up less space and fonts draw smaller. This means Xcode and the simulator fit on the high res display. For me they didn't quite fit right on the normal display, so I always found myself re-arranging windows when working out of my office (where I have a 27" desktop display). You can see this in the two screen shots below, the first from the old macbook and below that the new high-res macbook. I boosted the font for code from Monaco-12 on old macbook (also great on my desktop display) to Monaco-14 to get the same sized text on the high res macbook display. I might settle on a 12 or 13 though because the new screen is much clearer than the old one. Fortunately Xcode makes it easy to change font sizes for code so switching between 12pt for desktop and 14pt when on the road shouldn't be an annoyance.

Xcode on high res macbook pro

Open-GL on Simulator

I was hoping that the faster CPUs would boost performance of the iPad simulator running OpenGL. OpenGL on the simulator has terrible performance, I guess this is because the simulator is doing all its graphics with CPU based emulation of the graphics hardware on the phones, or maybe it just doesn't use real graphics hardware on the macbook. On the one hand thats fine for performance work because performance work of course has to be done on real devices. However for general game and graphics logic development it means that running the game on the simulator (especially in iPad mode) means that frame rates are really low, lower than a generation 1 iPhone. The new macbook didn't really help much here, OpenGL on the simulator still pegs one CPU on the macbook, and frame rates really didn't improve much.

Xbench Tests

Result: 266.92
System Info
Xbench Version 1.3
System Version 10.6.4 (10F569)
Physical RAM 4096 MB
Model MacBookPro6,2
Drive Type OWC Mercury Extreme Pro SSD
CPU Test 189.95
GCD Loop 296.65 15.64 Mops/sec
Floating Point Basic 166.76 3.96 Gflop/sec
vecLib FFT 109.83 3.62 Gflop/sec
Floating Point Library 386.71 67.34 Mops/sec
Thread Test 465.08
Computation 483.74 9.80 Mops/sec, 4 threads
Lock Contention 447.80 19.26 Mlocks/sec, 4 threads
Memory Test 300.03
System 320.11
Allocate 469.76 1.73 Malloc/sec
Fill 214.25 10417.48 MB/sec
Copy 388.24 8018.86 MB/sec
Stream 282.32
Copy 281.48 5813.81 MB/sec
Scale 278.43 5752.27 MB/sec
Add 287.15 6116.93 MB/sec
Triad 282.38 6040.76 MB/sec
Quartz Graphics Test 243.53
Line 191.89 12.78 Klines/sec [50% alpha]
Rectangle 244.42 72.97 Krects/sec [50% alpha]
Circle 216.59 17.65 Kcircles/sec [50% alpha]
Bezier 207.61 5.24 Kbeziers/sec [50% alpha]
Text 557.04 34.85 Kchars/sec
OpenGL Graphics Test 192.35
Spinning Squares 192.35 244.01 frames/sec
User Interface Test 326.40
Elements 326.40 1.50 Krefresh/sec
Disk Test 321.71
Sequential 192.97
Uncached Write 282.94 173.72 MB/sec [4K blocks]
Uncached Write 278.32 157.47 MB/sec [256K blocks]
Uncached Read 92.01 26.93 MB/sec [4K blocks]
Uncached Read 365.84 183.87 MB/sec [256K blocks]
Random 966.64
Uncached Write 1186.91 125.65 MB/sec [4K blocks]
Uncached Write 517.95 165.82 MB/sec [256K blocks]
Uncached Read 2940.24 20.84 MB/sec [4K blocks]
Uncached Read 975.84 181.07 MB/sec [256K blocks]