I've been using a new M1 MacBook Pro for the past 6 weeks and I've been blown away from the start. Prior to this, I had been using a Hackintosh and a 2017 MacBook Pro.

I always dreaded using my previous Macbook: it was slow, it barely had any storage and RAM, and the fans would go off like a jet engine whenever I tried to do any proper work on it. For these and many other reasons, I mostly used my Hackintosh, a 12-core monster compared to my laptop, whenever I had any form of extended work to do and was able to work at my office.

Since moving to the M1 Mac, I've found no reason to boot up my previous workstation...color me impressed!

I'll share my experience through a series of benchmarks addressing different areas where I've noticed the most gains, and how they relate to the value you obtain with an entry level device.

  • Setup
  • Storage
  • Performance
  • Memory
  • Power consumption
  • Closing thoughts

‌                 ‌

Setup and considerations

First of all, I know it's not fair to compare a 2017 laptop to a 2020 one, and that a 2018-2020 Intel would've been a better test subject, but even a 2020 Core i5 MacBook falls short based on GeekBench scores (roughly +50% gains single-thread and +80% multi-threaded.) The Intel results could be halved and the M1 would crush it every round. I also added the Hackintosh into the mix just to show how impressive the results are.

Test Systems

  • MacBook Pro (13-inch, M1, 2020)‌‌
    M1 3.2 GHz 8-core processor, 8-core GPU
    ‌‌256GB SSD
    ‌‌8GB 4266 MHz RAM
  • MacBook Pro (13-inch, Intel, Mid-2017)
    ‌‌Intel Core i5 2.3 GHz (Dual Core)
    ‌‌128GB SSD
    ‌‌8GB 2133MHz RAM
  • Hackintosh
    ‌‌Ryzen 9 3900X 12-core processor‌‌
    500GB Samsung 960 SSD
    ‌‌64GB 3200MHz RAM

Setup

I did not make a fresh installation on my everyday computer which means I had a couple years worth of cruft accumulated, so the M1 may have a slight advantage in this regard.

I tried to run all tests resembling a typical use as close as possible. In practice, I was running a very limited subset of the apps I normally use, but I wanted a realistic scenario that could translate to other people.

  • Main Screen + External monitor (2560x1440 resolution, dual monitors for Hackintosh)
  • Edge with 5 tabs open (Gmail, App Store Connect, Stack Overflow, Github and The Verge)
  • Calendar
  • Telegram
  • Terminal
  • Slack
  • VSCode or Xcode
  • closed all other processes and menu bar apps.

‌                 ‌

Storage

First of all, 128gb MacBooks are terrible to live with and should've never existed. The space is extremely limiting and your experience will be as far from delightful as possible. You have to consciously think about storage at all times. I never kept any personal files or downloads as I would constantly run out of space.

For this review I needed to upgrade to Big Sur, and I spent about 1 hour cleaning up things to free up enough space to be able to upgrade. I deleted almost all my local repositories, uninstalled Android Studio, cleared Xcode archives and other caches using CleanMyMac. In total, macOS required me to have 36GB free to continue with the upgrade, out of around 80GB of usable storage you have with a 128GB MacBook Pro.

Test - Unxip Xcode

I was unable to test using the Intel Mac as even with 40GB available, it wouldn't let me unxip (XIPs are Apple-specific signed ZIP files) the file.‌‌ The storage speed on the Hackintosh is comparable to the M1 storage, yet the M1 wins by almost 1 minute!

The base storage option is much better now than it was last year, and as far as trade-offs go, this is an easier pill to swallow thanks to external high-speed capable SSD alternatives.

‌                 ‌

Performance

My work consists of mostly mobile and web development. For these tests I focused on Swift and React Native. All charts are the average of 3 runs on each device.

Test - Swift native app

The first test is an app built using Swift 5 with a few Cocoapods dependencies. I performed a Clean Build and deleted the app on the device before every run. Time is measured from the moment the build starts until the splash screen appears.

Time reflects build and install on device (until splash screen)

For mobile development you'll often have to run on real devices and on the simulator, so I tested both of these scenarios. Build times are mostly unchanged, aside from the longer load times from waiting for the Simulator to start on Intel.

Time reflects build and install on Simulator (until splash screen)

Of course we don't always build fresh, but even for incremental builds the difference is noticeable. Here the M1 and Hackintosh took longer to install the app than the actual build times.

‌‌Archiving the same app gives us similarly impressive results, and we can see how much time we lose once tasks take longer to complete.

‌‌Test - React Native app

These days most of our work is moving over to React Native, so I had to test the impact there. The test project was a regular sized React Native app with a Unity component which usually took much longer to build compared to Swift. For React Native, initial build times are less relevant as once the bundle is built and you're actually working, hot reloading is generally instant even on Intel. However you're not exempt from rebuilding from time to time, and the M1's performance will make a huge difference.

This test started similar to Swift: first clean the build folder, close any open terminal and start building. This test is the only time I heard the fans on the M1. Meanwhile, the Intel Mac took so long to build the bundle that launch timed out (hence the asterisk) and I had to run the app manually. This is also the only test where the Hackintosh comes ahead, and only by a very slim margin.

Time reflects build and install on device (until splash screen)

Xcode incremental builds are not as common on a day to day basis, but this graph shows the expected behavior once most of your build is cached and run the project after a break.

Memory

A frequent reminder on my MBP

A big trade-off from going with the base model is limited RAM. If your work consists of running any memory heavy applications, like simulators or VMs, you will inevitably run out of system memory and have to rely on swap.

I measured the peak memory usage during all tests and recorded the highest value during the entire run as reported by Activity Monitor.

macOS will gladly use as much RAM as is available during normal use; caching recent files so apps load faster while they are still in memory. This is visible in the Hackintosh results where it took up a whopping 20GB at its highest peak. App memory required was a consistent 4.2~4.6 GB across all 3 test systems, sometimes falling as things were evicted due to memory pressure.

Thanks to a bad habit I picked up from my days of running CleanMyMac X on an almost daily basis—clearing Xcode Derived Data— I've identified a reproducible scenario where the system will lock up entirely and reboot itself. When Xcode starts indexing again, swap usage hits highs of 10GB for periods of 10 minutes or longer, depending on the active project, and on multiple occasions it caused the computer to lock up and reboot.

Chug chug chugging along
[TBW refers to Terabytes Written, and is used to measure the lifespan of a drive. More info: What are TBW?]

Since running those tests I've noticed a lot of swap usage, going as high as 10GB. There's a lot of news going around regarding SSD wear from swap usage, and my case is no different, I'm at 15TBW in just 6 weeks of use. The SSD on my previous system was at less than 100TBW after nearly 3 years of daily use, or an average 2.6TBW per month. I'm worried about the lifespan of the drive on my new Mac, but so are a lot of people and if any issues are identified Apple will most likely jump on it before it becomes a problem.

This is the single biggest trade-off from going with the base model on the M1 Macs as there's no magic bullet to fix RAM usage: more RAM is simply better. For nearly every "Pro" use case (e.g. running simulators or VMs, photo or video editing), 16GB is a much better choice.

‌                 ‌

Power Consumption

I don't have enough data to give a thorough battery performance review, just the general gist of what I've noticed: I can keep the M1 Mac for hours on battery and I'll never feel the need to run for a charger, while on Intel I would get battery anxiety 1 hour into using it off charger.

What I do have is a clear picture of the power consumption: this thing sips power. The M1 Mac will use roughly 15-20W during normal use, and around 42W at absolute maximum load. Compare this to my Hackintosh, which idles at 60W and would consume upwards of 170W at full load. The efficiency of this chip is simply unrivaled.

‌                 ‌

Closing thoughts

All in all, the M1 Macs offer amazing performance and reasonable value, the base storage configuration is adequate and you can supplement it with external drives, but I worry about the longevity of the device due to the 8 gigs of RAM. Right now 8GB is barely enough, but the performance of this device feels so far ahead of any competition that I could see it lasting much longer than any of the Intel options, and 8GB will be extremely limiting then without the possibility of increasing it.

I'll finally retire my Hackintosh and I can't wait for the next generation of Apple Silicon chips!

‌‌

‌‌