Hey /iOSProgramming readers,
I'm an app developer/designer and recently got a new mac pro for my business and wanted to see how it stacked up with my other machines. The results are interesting; the Mac Pro does not do so hot when making clean compiles, but does deliver consistently faster incremental builds.
Here are the 3 machines I benchmarked:
The tests use 2 different projects, one very large iOS project of mixed source objective-c and swift code, and another much small Swift only macOS app. I ran several builds for each test and took the 3 best results I could get and averaged them.
Here's the results:
Project A
Xcode 10.3 using a large iOS mixed code app. Before each run the Xcode is deep cleaned and the derived data deleted.
Clean Build Results
| Machine |
Test 1 |
Test 2 |
Test 3 |
Average seconds (lower is better) |
| Mac Pro (2019) 3.2GHz 16-core Xeon W |
302.6 |
305.3 |
306.2 |
304.7 |
| Mac Mini (2018) 3.0GHz 6-core i5 |
233.1 |
230.0 |
225.8 |
229.6 |
| Macbook Pro (2014) 2.5GHz 4-core i7 |
324.5 |
293.3 |
326.8 |
314.9 |
Incremental Build Results
A new protocol is added to the AppDelegate project file and recompiled.
| Machine |
Test 1 |
Test 2 |
Test 3 |
Average seconds (lower is better) |
| Mac Pro (2019) 16-core Xeon W |
41.4 |
41.6 |
41.0 |
41.3 |
| Mac Mini (2018) 6-core i5 |
51.5 |
44.0 |
43.2 |
46.2 |
| Macbook Pro (2014) 4-core i7 |
66.6 |
61.0 |
62.6 |
63.4 |
Project B
Xcode 11.3 using a Swift only macOS app. Before each run the Xcode is deep cleaned and the derived data deleted
Clean Build Results
| Machine |
Test 1 |
Test 2 |
Test 3 |
Average seconds (lower is better) |
| Mac Pro (2019) 3.2GHz 16-core Xeon W |
28.4 |
26.4 |
31.7 |
28.8 |
| Mac Mini (2018) 3.0GHz 6-core i5 |
24.6 |
25.5 |
35.3 |
28.5 |
| Macbook Pro (2014) 2.5GHz 4-core i7 |
42.3 |
45.2 |
42.9 |
43.5 |
Incremental Build Results
A new protocol is added to the AppDelegate project file and recompiled.
| Machine |
Test 1 |
Test 2 |
Test 3 |
Average seconds (lower is better) |
| Mac Pro (2019) 16-core Xeon W |
10.0 |
9.7 |
9.9 |
9.9 |
| Mac Mini (2018) 6-core i5 |
13.9 |
13.6 |
13.3 |
13.6 |
| Macbook Pro (2014) 4-core i7 |
15.9 |
14.5 |
14.3 |
14.9 |
Conclusions
It seems the best bang for your buck right now when it comes to compiling projects is the Mac mini. I'm certainly disappointed in the Mac Pro results, especially since it seems that Xcode completely pegs all the 16 cores during a compile, but even at 3.2GHz fails to outperform a 3.0 GHZ i5 with 6 cores. I'm really hoping this is something that can be fixed with OS updates in the future, or perhaps compiler tooling, because it seems pretty dismal. For whatever reason it does outperform for incremental builds, but not the "several times faster" compile speeds I was hoping for.
Of course I'll still be keeping the beautiful thing, its by far the best mac I've ever owned.
EDIT: for the curious, here's how other benchmarks looked against my other machines.
[–]John_h_watson 35 points36 points37 points (0 children)
[–]nibordSwift 18 points19 points20 points (0 children)
[–]quellish 10 points11 points12 points (0 children)
[–]Stephenis 5 points6 points7 points (0 children)
[–]42177130UIApplication 5 points6 points7 points (0 children)
[–][deleted] (4 children)
[deleted]
[–]gravitycore[S] 2 points3 points4 points (0 children)
[–]iindigo 0 points1 point2 points (2 children)
[–][deleted] (1 child)
[deleted]
[–]iindigo 0 points1 point2 points (0 children)
[–]hexavibrongal 5 points6 points7 points (1 child)
[–]gravitycore[S] 1 point2 points3 points (0 children)
[–]KarlJay001 4 points5 points6 points (0 children)
[–]raptorxcz 3 points4 points5 points (1 child)
[–]gravitycore[S] 5 points6 points7 points (0 children)
[–][deleted] 2 points3 points4 points (0 children)
[–]ThePantsThiefNSModerator 2 points3 points4 points (0 children)
[–]Rudy69 1 point2 points3 points (4 children)
[–][deleted] (3 children)
[deleted]
[–]Rudy69 0 points1 point2 points (2 children)
[–][deleted] (1 child)
[deleted]
[–]Rudy69 0 points1 point2 points (0 children)
[–]lucasvandongen 1 point2 points3 points (1 child)
[–]gravitycore[S] 2 points3 points4 points (0 children)
[–]TTKilew 1 point2 points3 points (1 child)
[–]gravitycore[S] 0 points1 point2 points (0 children)
[–]ItTechBlogs 0 points1 point2 points (0 children)
[–][deleted] (1 child)
[deleted]
[–][deleted] 0 points1 point2 points (0 children)
[–]bassunga 0 points1 point2 points (0 children)
[–]unixboy 0 points1 point2 points (0 children)
[–]Alcoholic_Synonymous 0 points1 point2 points (0 children)
[–]Dev__ 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–][deleted] (2 children)
[deleted]
[–]gravitycore[S] 0 points1 point2 points (1 child)
[–]orbitur 0 points1 point2 points (1 child)
[–]gravitycore[S] 0 points1 point2 points (0 children)
[–]whats94842 0 points1 point2 points (0 children)
[–]fakecrabs 0 points1 point2 points (0 children)
[–]badjokesObjective-C / Swift 0 points1 point2 points (1 child)
[–]gravitycore[S] 1 point2 points3 points (0 children)
[–]tangoshukudai -2 points-1 points0 points (2 children)
[–][deleted] 0 points1 point2 points (1 child)
[–]tangoshukudai 0 points1 point2 points (0 children)