There are a number of CPU and GPU synthetic tests for Apple products. However, as iOS and macOS developers, we want to understand the real (but still relative) performance of
MacBook in one of the most used tools -
The Core Idea of Xcode Benchmarking
I created Xcode Benchmark to perform a compilation of a large project, measure the final time, and compare results with different Macs. I believe this project will save you money. As we will see later, it’s not necessary to buy i9 for iMac 2020 (extra $400) or even iMac Pro (the 2017 model starts from $5,000) to compile pretty fast.
Keep in mind that the majority of projects probably do not have such a huge codebase, and performance differences might be less accordingly.
iMac, MacBook Pro, iMac Pro Performance in Xcode
Here are the results of
iMac Pro benchmarks with different configurations of CPU, RAM, and SSD.
The up to date list is always available on the project page.
As we can see, even the base
iMac 2020 model outperforms
iMac Pro 2017 ($2,300 vs $5,000) in Xcode. I personally think it mostly related to the higher frequency (3.8 GHz vs 3.0 GHz and 5.0 GHz vs 4.8 GHz using TurboBoost) and manufacturing years.
The size of RAM and SSD do not change results significantly. 16GB of RAM and 512GB of SSD is enough for apps and files I use today.
There are several points to mention:
- Despite Xcode Benchmark implements a real-world use case, it is still a syntactic tool that shows approximate results in Xcode.
- The results might differ on Xcode and macOS versions, codebase, thermal conditions, and overall system load.
- It’s very welcome to contribute your results and suggest ideas on the benchmarking process.
- Xcode Benchmark is originally created for Max Tech YouTube channel to measure the performance of new iMacs 2020. They made a number of benchmarks for other use cases such as video-, audio-, photo- editing, and gaming.
I also recommend checking out other articles to get a deeper understanding of
Swift String's performance and the concept of
Efficient Random Access on Swift String.
Discover which problems random access may cause on Swift String and how to perform it efficiently.
Discover Side Tables - Weak Reference Management Concept in Swift.
Let’s take an in-depth look at weak references in Swift and learn the concept of Side Tables.
By the way, let’s be friends on Twitter.