13" vs 15" MacBook Pro: A Developer's Perspective in 2016
One of the biggest issues I had when buying the new MacBook was what size to go with. I've always been a 13" kinda guy, erring on the side of portability, but I knew it was a tradeoff. Part of my hangup was that of skepticism. It's easier to feel the difference in portability of the machines in-hand, but real-world performance is harder to judge. Geekbench benchmarks are good indicators, but those aren't a perfect representation of real-world affects of that choice will make.
And it isn't like Apple lets you test out Xcode projects on floor units.
There were two things I wished I had better information on when shopping for a new laptop: Xcode build times, and screen real-estate while coding. So with my new MBP in-hand, and the help of some friends, I've compiled some real-world data about the differences from a developer's perspective.
Hopefully others might find this brief bit of information useful.
Interface Builder is where I always felt the most constrained on a 13" laptop. Here's a comparison of 13" vs 15" IB, in my default layout when editing a storyboard in Slopes, using the default scaling size on retina screens:
I didn't think 15" would make a huge difference, but I've almost doubled my canvas area when I'm on the go. I can actually see an entire view controller at a time without collapsing panels. Of course, this doesn't hold a candle to what I work in when I'm at my desk on my 27" external monitor:
2016 Touch Bar 13" vs 15"
Of more interest to me was how moving from the 13" to the 15" would effect build times. Not only does one hop CPU families with the size change (from i5 -> i7), but you're also doubling the cores (which is more important).
Note: Geekbench links are not specific to the machines that ran the tests, but representative of the top scores for that configuration I could find. We made sure no other processes were hogging the CPU or disk when the tests were started.
Soroush was willing to run my test on his new 13" to compare to my results on a 15". Geekbench shows a ~20% improvement in single-core tasks, and ~70% improvement in multi-core when you go from the 2.9ghz i5 in the 13" line to the 2.7ghz i7 on the 15" line.
Of course the real-world answer will be somewhere in between.
We grabbed Artsy's app (thanks for open sourcing that, folks!) as its code-base is very real-world-app in size. Then we ran their setup while also turning on Xcode's build-time reporting flag so we didn't need to manually stopwatch this and introduce human error. Lastly we ran some clean builds of it using Xcode 8.1.
- Grab and setup their project:
defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES cd ~/Desktop git clone https://github.com/artsy/eigen.git -b xcode-8-update cd eigen gem install bundler bundle install --without development distribution make oss bundle exec pod install open Artsy.xcworkspace
- Do a build, let it finish indexing
- Clean, then clean build folder / delete derived data
- Repeat 2 - 4 3x times to get an average
- 2016 15” i7 2.7ghz 16gig RAM: avg 62s
- 2016 13” i5 2.9ghz 16gig RAM: avg 88s
The i7 saw a average of 30% speedier build times. That's more than the single-core score improvement from Geekbench, but nowhere near the multi-core score. It was somewhere in the middle. A healthy jump, still, and clear why so many developers swear by the 15".
Vs a 2 Year old rMBP
I still have my 2014 rMBP 13" as I get ready to sell it, so I ran the tests there, too. According to geekbench the single-core improvements should be 5%, and multi-core should be 20%. The real-world results?
- rMBP 2014 13” i5 2.6ghz 16gig RAM: avg 103s
From the 2014 rMPB 13" to the 2016, both spec'd with the baseline dual-core i5 CPU offered, Xcode is building the same project about 14% faster.
Now, the slightly improved CPU isn't the only change to happen since the 2014 model. At a time when Intel's improvements are slowing, Apple has made huge improvements to SSDs, and that likely has a noticeable impact here, too.
Vs an Older Desktop
Joe was also curious about these real-world numbers as he's considering a new machine, so he ran the same test on his maxed-out 2012 iMac i7. (Geekbench for his machine's configuration.)
- iMac 2012 27" i7 3.4ghz (fusion drive) 24gig RAM: avg 61s
It's interesting to see how laptops fair vs raw desktop power. The 15" i7 2016 rMPB has just now caught up with a maxed-out i7 iMac from four years ago. This shouldn't be surprising, laptops always have to trade off a lot to be portable, but it at least gives us an idea where modern-day power curves are.
I've been getting replies as more people run the benchmarks and send in their findings. All below are SSDs unless otherwise noted. Here's a complete list in order of speed.
Disclaimer: as I get more of these in, it's hard to guarantee these numbers as perfect samples as multiple factors can affect these benchmarks. This isn't a lab where I can image every Mac to be the same, so I'd grain of salt these results appropriately.
- Arek's 2015 iMac 5k i7 4.0ghz 16gig RAM: avg 46s
- David's 2013 Mac Pro Xeon E5 6-core 3.5ghz 64gig RAM: avg 47s
- Troy's 2016 rMBP 15" i7 2.9ghz 16gig RAM: avg 53s
- Joe's 2012 iMac 27" i7 3.4ghz (fusion drive) 24gig RAM: avg 61s
- My 2016 rMBP 15” i7 2.7ghz 16gig RAM: avg 62s
- Roland's 2013 rMBP 15" i7 2.7ghz 16gig RAM: 64s
- Alfredo's 2012 rMBP 15" i7 2.3ghz 8gig RAM: avg 75s
- Soroush's 2016 rMBP 13” i5 2.9ghz 16gig RAM: avg 88s
- Kuba's 2012 iMac i5 2.9ghz 16gig RAM: avg 97s
- Nicholas's 2009 iMac 27" i5 2.66ghz 16gig RAM: avg 97s
- Mateusz's 2011 MBP 15" i7 2.2ghz 8gig RAM: avg 101s
- My 2014 rMBP 13” i5 2.6ghz 16gig RAM: avg 103s
- Kuba's 2015 MacBook Air i7 2.2ghz 8gig RAM: avg 118s
- Joe's 2015 MacBook 12" Core M 1.3ghz 8gigs RAM : avg 160s
No real big takeaway here, I had no point to make. Just trying to help anyone else with the decision with some info I wish I had available.