Skip to content

XcodeBenchmark measures the compilation time of a large codebase on iMac, MacBook, and Mac Pro

License

Notifications You must be signed in to change notification settings

vm-tester/XcodeBenchmark

Repository files navigation

XcodeBenchmark contains a large codebase to measure the compilation time in Xcode.

You are probably familiar with the following question:

"Should I buy an i5, i7, or even i9 processor for iOS/macOS development?".

XcodeBenchmark is initially created for Max Tech YouTube channel to compare the performance of new iMacs 2020.

I believe the results will help developers to make the right cost/performance trade-off decision when choosing their next Mac.

Xcode 12

DeviceCPURAMSSDHDDXcodemacOSTime(sec)
Mac Pro 2019Xeon 2.5 GHz 28-core964TB12.211.0.190
Mac mini 2020Apple M1 8-core161TB12.211.0116
MacBook Pro 13" 2020Apple M1 8-core161TB12.211.0119
MacBook Air 13" 2020Apple M1 8c (8c GPU)1651212.211.0.1128
MacBook Air 13" 2020Apple M1 8c (7c GPU)825612.211.0.1137
iMac 27" 2019i9 3.6 GHz 8-core642TB12.111.0.1145
iMac 27" 2020i9 3.6 GHz 10-core1281TB12.211.0.1146
iMac Pro 27" 2017Xeon 3.2 GHz 8-Core321TB12.210.15.7158
iMac 27" 2019i9 3.6 GHz 8-core4051212.211.0.1163
MacBook Pro 16" 2019i9 2.4 GHz 8-core3251212.211.0.1176
Mac mini 2018i7 3.2 GHz 6-core3251212.211.0.1192
MacBook Pro 16" 2019i9 2.3 GHz 8-core321TB12.211.0.1221
iMac 27" 2017i7 4.2 GHz 4-core161TB12.211.0.1246
MacBook Pro 16" 2019i7 2.6 GHz 6-core1651212.211.0.1250
MacBook Pro 13" 2020i5 2.0 GHz 4-core161TB12.211.0.1265
MacBook Pro 15" 2017i7 2.8 GHz 4-core1625612.211.0.1282
MacBook Pro 15" 2015i7 2.2 GHz 4-core1625612.111.0.1324
MacBook Pro 15" 2015i7 2.2 GHz 4-core1625612.110.15.5334
MacBook Pro 15" 2014i7 2.5 GHz 4-core1625612.210.15.7343
MacBook Pro 15" 2013i7 2.3 GHz 4-core1651212.210.15.7374
iMac 27" 2011i7 3.4 GHz 4-core1625012.110.15.7378
MacBook Pro 13" 2017i5 2.3 GHz 2-core1625612.211.0.1448
MacBook Pro 13" 2016i5 2.9 GHz 2-core825612.211.0.1518
MacBook Pro 13" 2015i5 2.7 Ghz 2-core851212.210.15.7597
MacBook Air 13" 2020i3 1.1 GHz 2-core825612.211.0.1700
iMac 21.5" 2017i5 3.0 GHz 4-core161TB12.211.0.1725
MacBook Air 2014i5 1.4 GHz 2-core412812.211.0.1894

Xcode 11

DeviceCPURAMSSDHDDXcodemacOSTime(sec)
iMac 27" 2020i9 3.6 GHz 10-core6451211.610.15.6217
iMac Pro 27" 2017Xeon 3.0 GHz 10-core641TB11.710.15.6222
iMac 27" 2020i7 3.8 GHz 8-core6451211.610.15.6229
iMac 27" 2020i7 3.8 GHz 8-core3251211.610.15.6229
iMac 27" 2019i9 3.6 GHz 8-core642TB11.610.15.6252
iMac Pro 27" 2017Xeon 3.2 GHz 8-core321TB11.610.15.6263
Mac Mini 2018i7 3.2 GHz 6-core1651211.710.15.5300
MacBook Pro 16" 2019i9 2.3 GHz 8-core322TB11.610.15.6328
MacBook Pro 16" 2019i7 2.6 GHz 6-core1651211.610.15.6353
Mac Mini 2018i5-8500B 3.0 GHz 6-core851211.710.15.6383
iMac 27" 2017i7 4.2 GHz 4-core482TB11.710.15.6411
iMac 21.5" 2017i7-7700 3.6 GHz 4-core161TB11.710.16.6419
MacBook Pro 15" 2018i7 2.6 GHz 6-core1651211.610.15.6440
Mac Pro 2013E5-1650 v2 3.5 GHz 6-core321TB11.710.15.6518
MacBook Pro 15" 2017i7 2.9 GHz 4-core1651211.610.15.6583
MacBook Pro 15" 2015i7 2.2 GHz 4-core1626511.710.15.6594
MacBook Pro 15" 2016i7 2.7 GHz 4-core161TB11.710.15.6642
Mac Mini 2014i5 2.6 GHz 2-core81TB11.710.15.61193

Custom Hardware - Xcode 12

DeviceCPURAMSSDHDDXcodemacOSTime(sec)Comments
NLEstation 2020i9 3.6 GHz 8-core641TB12.210.15.7129
Hackintoshi7-10700K 3.8 Ghz 8-core321TB12.210.15.7130
RyzentoshR9 3900 3.8 Ghz 12-core3251212.110.15.4161
Hackintoshi5-9400 2.9 Ghz 6-core325122TB12.110.15.7191
Hackintoshi3-10100 3.6 Ghz 4-core321TB12.110.15.7233

Custom Hardware - Xcode 11

DeviceCPURAMSSDHDDXcodemacOSTime(sec)Comments
Hackintoshi5-8400 2.8 Ghz 6-core3251211.610.15.6409
RyzentoshR5 3600 3.6 Ghz 6-core161TB11.710.15.6312

Set up

  • Download and install Xcode.
  • Open Xcode and install additional tools (Xcode should suggest it automatically).
  • Download and unarchive XcodeBenchmark project.

Before each test

  1. Disconnect the network cable and turn off WiFi.
  2. Make sure to disable all software running at startup
    • Go to System Preferences -> Users and Groups -> User -> Login Items.
    • Empty the list.
  3. Update Energy Saver settings
    • Go to System Preferences -> Energy Saver -> Turn display off and set 15 min.
  4. Reboot and cool down your Mac.
  5. Connect to the power adapter if you use MacBook.

Running a test

  1. Open the Terminal app.
  2. Write cd and drag & drop XcodeBenchmark folder to the Terminal app to form cd path/to/xcode-benchmark.
  3. Run sh benchmark.sh in Terminal.
  4. When XcodeBenchmark has completed you will see this information.
  5. Upload your results, see Contribution section.

FAQ

Q: What's inside?

A framework that includes 42 popular CocoaPods libraries and 70+ dependencies in total.

Languagefilesblankcommentcode
C/C++ Header278558618143659215644
C++7502477130788182663
Objective C8822779723183148244
Swift11222182135225113945
C390150642331984119
Objective C++692980202615561
Markdown614865115131
XML14410221013047
Bourne Shell32442091321
JSON22101114
Pascal287185180
YAML1005
SUM:6231157270258605790974

Q: What do the results mean?

  1. First of all, the project is huge. Most projects are of a much smaller size.
  2. The results show relative performance in Xcode, compared to other Macs running under similar conditions.

Q: Why is CocoaPods not excluded from git-repo?

  • The project is also used by non-programmers. Let's keep it simple.

Contribution

  • If you have any non-Apple hardware components - submit your results to the Custom Hardware table.
  • Preferred:Submit a pull request and add a row to the Score section.
  • Open an issue and include all info in the following format:
| Device | CPU | RAM | SSD | HDD | Xcode | macOS | Time(sec) | Comments | |:--------------------:|:-----------------------:|:---:|:---:|:---:|:-----:|:-------:|:---------:|----------------| | Mac Pro 2019 | Xeon 2.5 GHz 28-core | 96 | 4TB | | 12.2 | 11.0.1 | 90 | | | MacBook Air 13" 2020 | Apple M1 8c (8c GPU) | 16 | 512 | | 12.2 | 11.0.1 | 128 | | | Mac Mini 2018 | i7 3.2 GHz 6-core | 16 | 512 | | 11.7 | 10.15.5 | 300 | | 

Make sure:

  • All steps are performed
  • Time column is still sorted after insertion.
  • You are added to the end of the Contributors list.
  • Attach a screenshot with a compilation time. Example.
  • The content in cells is centered. You can use this tool to edit a table.
    • File -> Paste table data
    • Select all cells -> Right click -> Text align -> Center

Contributors

About

XcodeBenchmark measures the compilation time of a large codebase on iMac, MacBook, and Mac Pro

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift64.5%
  • Shell19.4%
  • Ruby16.1%