Sunday, December 18, 2016

Surprising slower CPU speeds with MacBook Pro 2016

First off, the new Macbook Pro is impressively designed and I really like the direction they’re going. The Touchbar makes so much sense and it’s immediately obvious that it’s what the function keys always wanted to be.

However, after comparing between the 2015 model and this latest one, the CPU performance seems surprisingly bad.

Here are the specs for the two laptops I've tested:

2015 MacBook:
  • 2.8 ghz i7 (quad core; burst 4.0 ghz; Haswell)
  • 16 GB 1600 MHz DDR3 RAM



2016 MacBook:
- 2.7 ghz i7 (quad core; burst 3.6 ghz; Skylake)
- 16 GB  2133 MHz LPDDR3 RAM

A good portion of my day includes compiling Scala code, a language which, due to it's extensive feature set, can take a little longer to compile. As such I'm inclined to care about how well the hardware I'm using performs this task. In a somewhat informal test, I compiled the Marathon code 4 times, from scratch, each time completely clearing the compile cache (and not re-downloading dependencies). On average, the compile times were as follows:

  • MacBook Pro 2015 : 2m18s
  • MacBook Pro 2016 : 2m33s

This represents about a 12% reduction in performance from the 2015 to the 2016 model. The base clock speed is 4% slower, and the burst clock speed is 10% slower. The RAM in the 2016 model is significantly faster. So, to see this bit of a hit on performance was a surprise to me. In related news, clock speeds don't mean anything anymore.

On the positive side, the touch ID, touch bar, brighter screen, smaller form, new speakers, etc. are fantastic. It’s a very well designed device and it's a joy to use. When I'm browsing the web or performing other non-CPU-intensive tasks, the newer 2016 MacBook Pro is up to the task and has no noticeable performance issues. But, when measuring CPU intensive tasks, alone, it's strange how poorly it performs compares to it’s predecessor. It makes me wonder if maybe there is a software issue, or the MacBook Pro I received is defective, or, perhaps, they made some compromises to how CPU overclocking is handled because the new form factor introduced additional heat distribution constraints.

At any rate, if you regularly run CPU intensive tasks as a part of your day, then you may wish to pass on the new MacBook Pro, for now.

--- UPDATE ---

When I first wrote this post, I was consistently seeing a 27% decrease in speed. However, when I came back to run watch the clock speeds throughout the process, I wasn't able to reproduce those numbers. I've updated the post as such. I'm a little confused as to why it was performing so much worse earlier, but am also relieved.

I ran the Intel Power Gadget to monitor clock-speeds throughout the compile process. It looks like the newer MacBook Pro 2106 runs cooler and use SIGNIFICANTLY less power, which is what you'd expect from the new Skylake processors. Also, it appears to be bursting much less aggressively than the 2015 model, which explains perhaps the larger performance gap.


MacBook Pro 2015 CPU activity during compilation process. 


MacBook Pro 2016 CPU activity during compilation process.

I turned the MacBook Pro 2016 fans on high (using iStat menus) and it kept the CPU at just under 70°C the whole time during the compile test; no difference in execution time. I wonder why the new MacBook Pro doesn't push the processor harder when temperature is low and electrons are abundant?