My New MacBook Air Beats M1 Max
Tags: java, devjournal, tooling, performance
Published: 2022-11-15 16:13:09

This is a shocker… I just switched laptops, I thought I was downgrading from the “top of the line” M1 Max with 64gb (14.1 inch version) to a “tiny” MacBook Air M2 with “only” 24gb of RAM. Turns out I was wrong. The new M2 seems to be noticeably faster for my use cases as a Java developer. I was at first shocked but in retrospect I guess this makes sense.

I recently left my job at Lightrun. I usually buy my own laptops as I don’t enjoy constantly switching devices when I’m at work or working on personal things. But since I worked at Lightrun for so long I accepted their offer for a laptop. One year after I got the new laptop I found myself leaving the company. So arguably this was a big mistake. Turns out it wasn’t.

I wanted to buy the same machine. I was very pleased with the M1 Max. It’s powerful, fast, light and has a battery that lasts forever. It runs cool and looks cool. I placed an order with a local vendor who had the worst possible service. Ended up canceling that. Then I started looking around. 

I initially dismissed the MacBook Airs. I had a couple of MacBook Airs in the past, they were good for some things. But I do a lot of video editing nowadays and I also can’t stand their sharp edges. They are uncomfortable to hold in some situations. The new MacBook airs finally increased the RAM. Not to 32gb as I’d have wanted but 24gb is already a vast improvement over the miniscule 16gb of older devices. They also come in black and cost much less than the equivalent pro. MacBook Airs are lighter and thinner. I’m very mobile, both because I travel, and because I work everywhere. For me the thin and light device is a tremendous advantage. You can check out the [comparison tool](https://www.apple.com/mac/compare/?modelList=MacBook-Pro-14,MacBook-Air-M2,MacBookPro-13-M2) on Apples website.

They do have two big disadvantages:

* No HDMI port - that sucks a bit. It was nice plugging in at conferences with no dongle. But it’s not something I do often and AirPlay works for most other use cases.
* Only one external monitor - I don’t use external monitors when I work so this wasn’t a problem for me. If you’re the type that needs two monitors for work then this isn’t the laptop for you.

Since both aren’t an issue for me and the other benefits are great. I saved some money and bought the air. I expected to take a performance hit. Turns out I got a major performance boost!


## Migration
I used Time Machine to back up my older Mac and restore it to the new Mac. In terms of installed software and settings both devices should be identical. The stuff that is running on the old machine should be on the new machine as well. Including all the legacy that might be slowing it down. However, I wouldn’t consider my findings as scientific as this isn’t a clean environment. Everything is based on my use cases. Professional sites have better benchmarks for the common use cases. I suggest referring to them for a more complete picture. 

However, for me the machine is MUCH better. Probably most glaring is the IDE startup. I use IntelliJ/IDEA Ultimate for most of my day to day work. I just started writing a new book after completing my last book ([which you can preorder now](https://www.amazon.com/dp/1484290410/)), for that purpose I installed a fresh version of IntelliJ Community Edition. It doesn’t include all the plugins and setup in my typical install. It’s the perfect environment to check IDE startup time. Notice that I measured this with a stopwatch app, not ideal. I started the stopwatch with the icon click and stopped when the IDE fully loaded the Codename One project. 

* MBP M1 Max 64gb - 6.30
* MBA M2 24gb - 4.54

This is a sizeable gap in performance and it’s consistent with these types of IO bound operations. Running mvn package on the Codename One project for both showed slightly lower but still consistent improvements. I ran this multiple times to make sure:

* MBP M1 Max 64gb - 20.211
* MBA M2 24gb - 18.346

These are not medians or averages, just the output of one specific execution. But I ran the build repeatedly and numbers were consistent with a rough 2 second advantage to the M2. Notice I used the ARM build of the JDK and not the x86 versions.

As part of my work, I also create media and presentations. I work a lot in keynote and export content from it. The next obvious test is to export a small presentation I made to both PDF and a movie. In the PDF export, I made both export all the stages of the build.

* MBP M1 Max 64gb - 2.8
* MBA M2 24gb - 2.13

Again this shows a healthy advantage to the M2 device. But here’s the twist, when exporting to a movie the benchmark flipped completely and the MBP wiped the floor with the MBA.

* MBP M1 Max 64gb - 26.8
* MBA M2 24gb - 39.59

## Explanation
In retrospect, these numbers shouldn’t have surprised me. The M2 would be faster for these sorts of loads. IO would be faster. The only point where the M1 would gain an advantage would be if the 24gb of the air would be depleted. This isn’t likely for the current test so the air wins. 

Where the air loses is in GPU bound work. I’m assuming the movie export code does all the encoding on the GPU which is huge and powerful on the M1 Max. I hope this won't be a problem for my video editing work but I guess I’ll manage with what I have.

Even though the device is smaller by one Inch only the size difference is hard to get used to at this point. I worked on a MacBook Air in the past so I’m sure this will pass as I get used to it. It’s a process. I’m thrilled with my decision and the black device is such a refreshing feeling after all of those silver and gray Macs. The power brick is also much smaller which is one of those details that matters so much to frequent travelers. 


## Why am I Using a Mac?
This might be the obvious question. I don’t use an iPhone, so I might as well get a Linux laptop like a good hacker. I still develop things on Codename One, here I occasionally need a Mac for iOS related work. It’s not as often, but it happens. The second reason is that I’m pretty used to it by now. The desktop on Linux still feels not as productive to me.

There is one reason I considered going back to Linux, and that’s docker. I love the M1/2 chips. They are fantastic. Unfortunately, many docker images are Intel only and that’s pretty hard to work with when setting up anything sophisticated. The problem is solving itself as ARM machines gain traction. But we aren’t there yet.


## Finally
Yes i know. This article is shocking: newer machine faster than older machine. But keep in mind that the M1 was top of the line in all regards and the Air has half the performance cores. It's much thinner, fanless and is around 30% lighter. That's amazing over a single generation update.

Amazingly I think the M2 is powerful enough in a MacBook Air for most people. I think I would pick it even if the M1 Max was in the same price point. It’s better looking. It’s lighter. Most of the things that matter to me perform better on the air. It’s small but not too small and the screen is pretty great. I can live with all of those. It doesn’t have that weird MBA sharp edge older versions have. It’s a great machine. Hopefully, I’ll feel the same way when the honeymoon period is over, so if you’re reading this in 2023 feel free to comment/ping me, I might have additional insights.

The one point I’m conflicted about is stickers. The black finish is so pretty. But I want stickers. I had such a hard time removing them from the M1 machine. It’s too soon…