On the Apple Silicon M1 MacBook Pro

2020-11-26

I’ve been loving computers and computing since I was five years old, and in the intervening 25 years, I’ve never been more excited about anything in computing as much as I was about the Apple Silicon M1 chip when it was announced on November 10th. The M1 promised to bring huge leaps in performance, battery life and hardware longevity at a $999 price point and in a fanless chassis. It felt genuinely exciting to see such a significant leap in computing technology all at once.

The elements that stick out the most about why the M1 is special can be summarized as the following: a five nanometer process, an ARMv8-AArch64 instruction set, unified memory, separate performance and efficiency cores and a ton of accompanying hardware offering acceleration for video decoding, cryptographic operations and more. There’s also a bunch of dedicated silicon for GPU cores that have been shown to rival the Nvidia GTX 1060. This is all on an integrated SoC that consumes a maximum of 15 watts and that generally runs on far less. This is all in a context where Intel is shipping 45W and 65W processors inside laptops, built on 10-14nm transistors, with a dinosaur-age x64 instruction set and integrated graphics that are certainly not even close to competing with a dedicated GTX 1060.

Apple did something very annoying and very Apple by showing graphs such as this one at its unveiling event:

This graph is completely worthless. Honestly. Nobody knows to this day what Apple meant by “Latest PC laptop chip”, and both axes aren’t even numbered. It’s stupid that Apple still pulls this sort of thing off, and it immediately makes you question just how good the M1 is really supposed to be.

But then, some significant Geekbench scores started popping up, followed by Cinebench R23 scores showing the M1 outperforming 95W desktop processors.

Thus, I celebrated the arrival of my M1 MacBook Pro a couple of days ago with great pomp and celebration on Twitter:

I even posted absurd videos of me unboxing the MacBook to sensuous music, which I thought was pretty funny. But really, given what I had been reading about the chip, I was very excited to see for myself whether all the claims were true.

But which claims are those, exactly? Well:

At the risk of making this a very boring review, all I have to say is basically that all of the above is so far holding as true. This computer is nuts. Compiling tons of things in the background doesn’t slow down Safari web browsing, somehow. I haven’t had to plug it in once since I fully charged it up two days ago. Performance is so quiet and cool that I feel like my terminal compiling a bunch of things is actually an SSH into a much stronger workstation located somewhere else. I actually discovered that I’ve had an instinct of measuring my MacBook’s CPU usage by feeling the heat on the strip of aluminum right above the Touch Bar, and I can’t even do that anymore now. Because even if the M1 MacBook Pro has been running at 100% on all cores for ten straight minutes, you’ll barely feel it getting warm.

This just doesn’t feel like an entry-level 13” laptop. It feels like a workstation that’s magically bottled within a 13” laptop chassis.

Differences with the M1 MacBook Air: Not Just Active Cooling

Many reviews and articles online are stating that the only difference between the M1 MacBook Pro and the M1 MacBook Air is “the fan”, i.e. the fact that the MacBook Pro has an active cooling solution that allows it to sustain high performance for an extended period of time without succumbing to thermal throttling. Generally speaking, the MacBook Air doesn’t seem to exhibit thermals-induced throttling until around 10 minutes of sustained load, which is miles away from the mere seconds it takes Intel processors to start clocking down cores.

However, it’s seriously inaccurate to say that active cooling is the only difference, and I want to list all differences I am aware of (in order of personal relevance) aside from the active cooling solution:

Aside from that, the fan alone is actually already a pretty big difference. Dave Lee, one of my favorite tech YouTubers, published a great video on the M1 Macs in which he provided a Cinebench R23 comparison that illustrates a serious difference in sustained, multi-core performance between the MacBook Pro and the MacBook Air which is almost certainly entirely due to the active cooling solution:

Cinebench R23 benchmark courtesy of Dave Lee.

After 30 minutes of sustained mutli-core work, the performance dropped 15% on the MacBook Air compared to the Pro.

Active cooling is critically important to me because of my work on developing and testing Verifpal, cryptographic protocol modeling and analysis software that runs analyses which can easily fill a handful of CPU cores for an hour or longer. But scientific work aside, it does feel to me like the non-handicapped M1 chip, longer battery life, and peppering of quality of life improvements in the form of display, speaker and microphone improvements do justify the $300 price premium.

To me, understanding these differences between the Air and the Pro felt important because if I were to spring for the Pro, that’s a $300 difference that I wanted to justify to myself. Other reviews should mention all these differences more clearly in order to allow readers to make a more informed decision. I am personally not aware of any other difference between the M1 Air and Pro computers and think that’s all there is to it.

On Sticking to the Base Model: 8GB RAM, 256GB SSD

I personally don’t need more than 256GB of storage on my work computer and so settling for that isn’t at all an issue for me. The RAM was a more difficult question. However, given that this M1 was a completely unnecessary purchase (I have a very capable laptop that I bought only ten months ago), I wanted to see whether I could survive on the base model with 8GB RAM. I was encouraged to give this configuration a shot by the many articles and videos out there which argued that somehow, magically, 8GB of RAM performed better on M1 than it does on Intel Macs.

From my own experience, I so far am not sure that I agree that 8GB of RAM is enough for most developers. I’m happy with it so far; my most hardcore development scenario involved Visual Studio Code open along with a single terminal for compiling, debugging and testing, so I’m fine. However even with that, I seem to be constantly occupying the vast majority of my RAM, and things can get too close for comfort. Add a dozen browser tabs and a couple of Rosetta-translated apps and that’s it, you’re redlining in terms of memory pressure. I don’t know if that’s okay, and it’s not what I would expect from a “Pro” laptop. I think that while it’s true that 8GB of RAM does perform better on M1 than on Intel, claims of this being automagically sufficient for “95% of users” are a bit bogus. That being said, I’m satisfied with my 8GB of RAM. I think Apple should consider shipping 12GB RAM base models next year, however, if only on the 13” Pros. This would strike a needed sweet spot.

Update (July 8th, 2021): I am no longer satisfied with my 8GB of RAM and wish that I got the 16GB model. I’m frequently caching to disk when having a bunch of browser tabs open and doing development work, especially with XCode and Simulator. I’ll be getting a 16GB RAM MacBook (with a 512GB SSD to handle those big Xcode Simulator images and build caches, among other things) when I upgrade.

Quality of Life: Daily Use, Reliability, Battery Life

Everything is fast. Opening websites is fast, partly due to Wi-Fi 6 but also partly due to insanely fast render times in Safari. Sleep and wakeup are iPhone levels of fast. Changing screen resolutions happens instantly and without that fade-to-black ritual which has been the rule for the past two decades.

There is absolutely no thermal throttling that I’ve witnessed on my MacBook Pro. This alone has nutty implications for any kind of heavy laptop-based workloads. Benchmarks across the Internet are indicating that the M1 MacBook Air is trouncing the 16” MacBook Pro on Final Cut Pro render times, Xcode compilation times and virtually any other similarly heavy task.

There are also some pretty fascinating things to take into account: Rosetta-translated apps seem to run faster on M1 than on Intel in most cases. I don’t know how that’s true, but it is.

Overall there’s nothing more to say here about general quality of life on this machine. Rosetta is so smooth and fast that you don’t even notice you’re running emulated apps. Apple knew how important this would be to the success of rolling a new architecture towards a base of people who, of course, are in majority not computer nerds who even care which instruction set their new laptop runs on.

The M1 seems to be restricted in terms of PCI Express lanes and this manifests in all M1 Macs (even desktop Macs) being restricted to only two Thunderbolt 4 ports. This is a problem. Two ports aren’t enough on a Pro machine.

I ran Geekbench 5 and Cinebench R23 on my M1 MacBook Pro, a tiny laptop with a 15-watt CPU, and on my Intel Core i9-9900K workstation, a 95-watt behemoth:

I think it’s important to be clear that this is what the Core i9-9900K requires to stay cool, and that it’s barely enough despite making the sound of a jet engine:

Developing on the Apple Silicon M1

First, the good news: Xcode is silly fast, Rust just released (hours ago) support for Apple M1 in the beta branch of rustup, Visual Studio Code’s “Exploration” beta runs natively on M1, and Rosetta is great for everything else, including installing and running the entire Go toolchain compiled for Intel.

The bad news:

Once Homebrew for ARM has matured and is reliable, developing on the M1 should be a breeze. I don’t suspect this will take too long as many kind and talented engineers are working hard on making it happen.

Conclusion

I love what Apple is doing here. I’m selling all my other computers. This is the computing experience I’ve been waiting for my whole life, and I’m satisfied. Suggestions for future improvement, drawn largely from this article:

I have no other requests. I love my M1. I have no idea how Intel and the Windows ecosystem are going to catch up to this.