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 iMac and MacBook in one of the most used tools - Xcode.

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.

Xcode Benchmark it’s an iOS framework that consists of 42 popular CocoaPods libraries and 70+ dependencies in total.

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, MacBook Pro, 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.

Summary

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 Side Table.

By the way, let’s be friends on Twitter.