M2 Pro Mac mini VS M1 Mac mini
Tags: benchmark, mac, apple, hardware
Published: 2023-01-26 11:08:41

In this article I will try to answer the following question: is it worth upgrading to the new Apple **M2 Pro Mac Mini** having an old M1 Mac Mini? All this from the perspective of a software developer, and in order to have data with which to answer this question I am going to run performance tests compiling native iOS and native Android applications, I am also going to compile Flutter apps both in Android and iOS. Also, I'll build the Godot open-source game engine to see how this new Mac handles building C++ projects, and to finish I'll build a small Unity project.

> 📽 Video version available on [YouTube](https://youtu.be/aoERPuvXyS0) and [Odysee](https://odysee.com/@svprdga:d/m2-pro-mac-mini-vs-m1-mac-mini-benchmark-ios-android-flutter-c-unity)

{% embed https://youtu.be/aoERPuvXyS0 %}

I am going to run all these batteries of tests and give you the performance values on both the old Mac Mini with the M1 chip and the new Mac Mini with the M2 Pro chip. I hope the data that you will find in this article will help you understand better the difference between the two devices.

### Machine specs

Before we start, let me detail the specifics of the two machines that are going to be tested. On one hand, we have the old Mac Mini:

* Processor: Apple M1
    
* CPU: 8 cores (4 performance cores and 4 efficiency cores)
    
* GPU: 8 cores
    
* Neural engine: 16 cores
    
* OS: macOS 13.2
    
* RAM: 16GB
    
* Storage: 512GB
    

And on the other hand, we have the new Mac Mini, specifically the base model that incorporates the M2 Pro chip:

* Processor: Apple M2 Pro
    
* Cores: 10 cores (6 performance cores and 4 efficiency cores)
    
* GPU: 16 cores
    
* Neural engine: 16 cores
    
* OS: macOS 13.2
    
* RAM: 16GB
    
* 512GB storage
    

### Methodology

I am going to divide the tests into three large groups:

1. First I will run several synthetic tests. I will do it very briefly and condensed; since these types of tests do not always accurately represent the performance of a machine.
    
2. In the second part, I will run compile tests on different platforms.
    
3. Finally, in the miscellaneous section I will execute some additional tests.
    

To execute the tests accurately I have observed the following methodology:

1. The mac has been turned on from its off state. In case the surface showed signs of being hot, I have let it sit until it came back to room temperature.
    
2. Each test has been done in isolation, with only the system and its applications running to avoid interferences.
    
3. In some cases I have been able to use the `time` tool to accurately measure times, in others where this has not been possible I have used an external stopwatch. In this second case, the measurement contains a small margin of error, since I have done the start and stop of the stopwatch manually.
    
4. I also consider it appropriate to tell you that both the result and the improvement values that I show in each test are rounded. It is not my intention to give an absolutely precise result for each test but to show an approximate value. This means that a value of 50.3 will be rounded to 50 and a value of 80.7 to 81.
    

### Synthetic tests

We start the round of synthetic tests testing the CPU with [Cinebench](https://www.maxon.net/es/cinebench):

#### Cinebench R23 single-core:

* Mac Mini M1: 1523
    
* Mac Mini M2 Pro: 1649
    

These data indicate an improvement of approximately **8%** in single-core operations.

#### Cinebench R23 multi-core:

* Mac Mini M1: 7829
    
* Mac Mini M2 Pro: 11801
    

Here we see a huge improvement of around **50%** in multi-core operations.

---

We continue with more CPU tests with [Geekbench](https://www.geekbench.com/):

#### Geekbench 5 single-core:

* Mac Mini M1: 1765
    
* Mac Mini M2 Pro: 1963
    

This represents an improvement of **11%**.

#### Geekbench 5 multi-core:

* Mac Mini M1: 7764
    
* Mac Mini M2 Pro: 12161
    

Here we see again an interesting improvement of **57%**.

---

We continue with Geekbench, this time with its compute test with the Metal API:

* Mac Mini M1: 21643
    
* Mac Mini M2 Pro: 47308
    

The improvement in this case is **118%**. It's at this point where you can see the largest number of GPU cores in the new Mac Mini with an M2 Pro chip.

---

Now we move on to [Speedometer](https://browserbench.org/Speedometer2.0/), which is basically a bunch of tests all running in a web browser:

* Mac Mini M1: 293
    
* Mac Mini M2 Pro: 334
    

Here we can see an improvement of **14%**.

---

Next, we test what framerate each machine can reach by running a three-dimensional simulation with [GFX Bench](https://gfxbench.com/result.jsp), specifically the Aztec Ruins test in 4K:

* Mac Mini M1: 35FPS
    
* Mac Mini M2: 79FPS
    

We see a remarkable improvement of **126%**.

---

To finish with the synthetic tests, I am going to execute a disk reading and writing test with [AmorphousDiskMark](https://apps.apple.com/us/app/amorphousdiskmark/id1168254295?mt=12):

Mac Mini M1:

![M1 Mac Mini write/read disk test](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cfci2kiie47slit5cav9.png)

Mac Mini M2 Pro:

![M2 Pro Mac Mini write/read test](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xw3oqijwbriujg7vrqvf.png)

We can clearly see that in this sense this Mac has also improved.

### Code compilation tests

Let's start the benchmarks with real projects with [XcodeBenchmark](https://github.com/devMEremenko/XcodeBenchmark), which is nothing more than a huge Xcode project built specifically for benchmarking Apple computers. In this case we will obtain a value in seconds, with which the lower the value, the better the performance has been:

* Mac Mini M1: 129 seconds
    
* Mac Mini M2 Pro: 93 seconds
    

Here we can see a nice improvement of **28%**, which can give you clues as to how much you could improve your workflow in case you are an iOS developer.

---

Continuing with Xcode, I wanted to also try running a project within the IDE. Specifically, I have executed the well-known encrypted messaging application, [Signal](https://github.com/signalapp/Signal-iOS). The measurement goes from the moment the play button is pressed until the first frame appears in the simulator:

* Mac Mini M1: 152 seconds
    
* Mac Mini M2 Pro: 125 seconds
    

In this case we have an improvement of **18%**.

---

Now we move to the world of Android development. In this case, I have run a debug build of [Signal](https://github.com/signalapp/Signal-Android), but this time the native Android version. The command used has been `./gradlew assembleDebug`, I have used *debug* and not *release* since it is the most used command when developing:

* Mac Mini M1: 241 seconds
    
* Mac Mini M2 Pro: 162 seconds
    

A total improvement of **33%**, is quite interesting if you dedicate yourself to the development of Android applications.

---

Just like I did with iOS, I wanted to try running an app from Android Studio. For this I have executed [Infinity](https://github.com/Docile-Alligator/Infinity-For-Reddit), which is an alternative open-source client for Reddit:

* Mac Mini M1: 48 seconds
    
* Mac Mini M2 Pro: 20 seconds
    

This test shows an impressive improvement of **58%**.

---

Now we move to cross-platform development with Flutter. For this, I am going to make a compilation in *release* of the [Wonderous app](https://flutter.gskinner.com/wonderous/). I use release since in this way I force Flutter to optimize the Dart code, and in this way we obtain a slightly denser test:

#### Results for building an Android APK:

* Mac Mini M1: 48 seconds
    
* Mac Mini M2 Pro: 38 seconds
    

We see an improvement of **21%**.

#### Results when compiling for iOS:

* Mac Mini M1: 67 seconds
    
* Mac Mini M2 Pro: 51 seconds
    

In this case the improvement is **24%**.

These numbers are certainly a nice improvement for all Flutter developers.

---

We are now going to test the performance of this new machine by compiling a C++ project. Specifically for this test I have chosen the [Godot](https://godotengine.org/) open-source engine. This project is medium in size and quite easy to build, so here we go:

* Mac Mini M1: 136 seconds
    
* Mac Mini M2 Pro: 85 seconds
    

We see a noticeable improvement of **38%** when compiling Godot. Definitely a good number if you're interested in this kind of low-level code builds.

### Miscellaneous tests

To finish all this battery of tests we are going to see how each of the machines performs executing a project in the [Unity](https://unity.com/) engine. Specifically, the [Third-Person sample](https://assetstore.unity.com/packages/essentials/starter-assets-third-person-character-controller-196526), which is an official 3D sample. The test is to create a clean, self-running build for Mac:

* Mac Mini M1: 82 seconds
    
* Mac Mini M2 Pro: 59 seconds
    

We see that in this case the improvement is **28%**.

---

And to finish I bring you the result of running the [Blender benchmark](https://opendata.blender.org/). This benchmark consists of 3 different scenes:

#### Monster

* Mac Mini M1: 62.039165
    
* Mac Mini M2: 98.028404
    
* Improvement: **58%**
    

#### Junkshop:

* Mac Mini M1: 37.583881
    
* Mac Mini M2: 57.667289
    
* Improvement: **53%**
    

#### Classroom:

* Mac Mini M1: 28.222546
    
* Mac Mini M2: 44.594728
    
* Improvement: **58%**
    

We're certainly seeing those extra graphics cores perform much better on the new Mac Mini with the M2 Pro chip than the old one with the M1 chip.

### Analysis of the results

As a final conclusion, it remains to be seen if the improvement is substantial enough to justify the purchase of this new Mac. In the case of workflows that include graphical processes, I think the general improvement of this machine with the M2 Pro chip has been evident. In case you are a developer and depend on compilations executed by the CPU, you may be interested in doing the upgrade if you work with large codebases that take several minutes to compile.

In any case, here are the results that I have been able to obtain and only you know your workflow and the type of projects you usually work with.

I hope this article has been useful to you and that it has allowed you to draw interesting conclusions.

Thank you for reading this far.

Happy coding :)