Upgrading to an M4 Max
Apple announced their new MacBooks with M4 processors. I picked up a new MacBook Pro 14” with an M4 Max processor to replace my 2021 MacBook Pro with an M1 Pro. I’ve been using the M1 Pro for a few year now and it’s been great, but I’m excited to see what the M4 Max can do. To that end, I ran some benchmarks to compare the new M4 Max to the M1 Pro and M2.
I won’t post Geekbench scores, as they’re not a great indicator of real-world performance and there are plenty of results in their database. Instead, I’ll focus on Xcode build times and some other real-world tasks.
Xcode Build Times
I relied on XcodeBenchmark to measure build times. I followed the instructions in the README and ran the benchmark on each machine three times to get an average. The project is made up of almost 1 million lines of mixed code, including Swift, Objective-C, C, and C++. Including 76 popular libraries and frameworks, such as Alamofire, Realm, and Firebase.
Overview
Apple’s M processors are designed with a combination of performance and efficiency cores to optimize both power and energy consumption. The performance cores are designed to handle demanding tasks and provide maximum computational power, while the efficiency cores are optimized for less intensive tasks, ensuring longer battery life and reduced energy usage. For example, the M1 Pro features 8 performance cores and 2 efficiency cores, whereas the M4 Max includes 12 performance cores and 4 efficiency cores, providing a significant boost in performance for more demanding applications.
The more performance cores a processor has, the faster it can handle complex tasks, such as compiling large codebases in Xcode. The M4 Max’s additional performance cores should result in faster build times compared to the M1 Pro and M2.
Results
All tests were run on Xcode 16.1 and macOS 15.1. The latest versions at the time of testing.
Device | CPU (P = Performance/E = Efficiency) | RAM | SSD | Time |
---|---|---|---|---|
Mac Mini 2023 | M2 - 8 (4P and 4E) | 24GB | 1TB | 199.226s |
MacBook Pro 14” 2021 | M1 Pro - 10C (8P and 2E) | 16GB | 1TB | 162.375s |
MacBook Pro 16” 2021 | M1 Max (8P and 2E) | 32GB | 1TB | 149.227s |
MacBook Pro 14” 2024 | M4 Max - 16C (12P and 4E) | 48GB | 1TB | 85.054s |
The M1 Pro lives up to it’s name, providing a significant performance boost over the M2. The M4 Max is even faster, with build times almost half that of the M1 Pro. Compared to M1 Max, the M4 Max is 57% faster. The additional performance cores in the M4 Max make a noticeable difference in Xcode build times, especially for large projects like this one.
In the past with Intel Macs, Xcode compiling was a bottleneck for me that would bring my machine to it’s knees. Now though, with any Apple Silicon Mac, it’s a breeze. The M4 Max is no exception.
LLVM
I also ran some LLVM benchmarks using the time brew install llvm --head
. I ran the benchmark on each machine three times to get an average. LLVM is used by many languages and compilers, including Clang and Swift.
This is a really slow benchmark, so I only ran it on the M1 Pro and M4 Max.
Device | Real | User | Sys |
---|---|---|---|
M4 Max | 21.56m | 224.62m | 27.65m |
M1 Pro | 40.09m | 261.68m | 35.06m |
The
time
command consists of three timings, the real time, user time, and system time. The real time is the actual time it takes to run the command, the user time is the amount of CPU time spent in user mode, and the system time is the amount of CPU time spent in system mode. 1
The M4 Max is significantly faster than the M1 Pro in this benchmark, with a real time of 21.56 minutes compared to 40.09 minutes. The M4 Max also has a lower user time and system time, indicating that it is more efficient at compiling code.
Conclusion
The M4 Max is a significant upgrade over the M1 Pro and M2, with faster Xcode build times and improved performance in LLVM benchmarks. The additional performance cores in the M4 Max make a noticeable difference in demanding tasks, such as compiling large codebases and running complex benchmarks. If you’re a developer or power user looking for the best performance, the M4 Max is a great choice.
I can’t say that I am compiling LLVM ever, but it is a good benchmark to stress the processor and see how it performs. The M4 Max is a beast.
Footnotes
-
Think of the user time as the time spent executing code in the program across all cores, and the system time as the time spent executing code in the kernel. The real time is the sum of the user and system times, plus any time spent waiting for I/O or other resources over all cores. ↩
No comments yet. Share on Mastodon and see your comment or write a post on your blog if you support Webmentions
No reposts yet. Share on Mastodon and see your repost or write a post on your blog if you support Webmentions
No likes yet. Share on Mastodon and see your like or write a post on your blog if you support Webmentions
No bookmarks yet. Share on Mastodon and see your bookmark or write a post on your blog if you support Webmentions
Powered by Webmentions