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.
PR merging will be performed on a best-effort basis.
If a device you are looking for is not on the list below, check out open issues and PRs.
| Device | CPU | RAM | SSD | HDD | Xcode | macOS | Time(sec) | 
|---|---|---|---|---|---|---|---|
| MacBook Pro 14" 2021 | M1 Max 10-core | 64 | 2TB | 13.1 | 12.0.1 | 92 | |
| MacBook Pro 16" 2021 | M1 Max 10-core | 32 | 1TB | 13.1 | 12.0.1 | 98 | |
| MacBook Pro 16" 2021 | M1 Pro 10-core | 16 | 1TB | 13.1 | 12.0.1 | 102 | |
| MacBook Pro 14" 2021 | M1 Pro 8-core | 16 | 512 | 13.1 | 12.0.1 | 109 | |
| MacBook Pro 13" 2020 | M1 8-core | 16 | 1TB | 13.1 | 12.0.1 | 130 | |
| iMac 24" 2021 | M1 8-core | 16 | 512 | 13.1 | 12.0.1 | 130 | |
| MacBook Pro 16" 2019 | i9 2.4 GHz 8-core | 64 | 1TB | 13.1 | 12.0.1 | 212 | |
| MacBook Pro 16" 2019 | i9 2.4 GHz 8-core | 32 | 1TB | 13.0 | 11.6 | 223 | |
| Mac Pro 2012 | 2 x Xeon 3.46 GHz 6-core | 48 | 500 | 13.1 | 12.0.1 | 230 | |
| Mac mini 2018 | i5 3.0 Ghz 6-core | 8 | 256 | 13.0 | 12.0.1 | 235 | |
| MacBook Pro 16" 2019 | i7 2.6 GHz 6-core | 32 | 512 | 13.0 | 11.6 | 248 | |
| MacBook Pro 15" 2018 | i9 2.9 GHz 6-core | 32 | 1TB | 13.0 | 11.6 | 263 | |
| MacBook Pro 13" 2018 | i7 2.7 GHz 4-core | 8 | 256 | 13.0 | 11.6 | 336 | |
| MacBook Pro 15" 2016 | i7 2.6 GHz 4-core | 16 | 256 | 13.1 | 12.0.1 | 362 | |
| MacBook Pro 13" 2017 | i5 2.3 GHz 2-core | 8 | 256 | 13.1 | 11.5.1 | 511 | 
| Device | CPU | RAM | SSD | HDD | Xcode | macOS | Time(sec) | 
|---|---|---|---|---|---|---|---|
| iMac 24" 2021 | M1 8-core | 16 | 512 | 12.5 | 12.0.1 | 124 | |
| MacBook Pro 16" 2019 | i7 2.6 GHz 6-core | 16 | 512 | 12.5 | 11.4 | 282 | |
| MacBook Pro 15" 2015 | i7 2.5 GHz 4-core | 16 | 512 | 12.5 | 11.2.3 | 361 | 
| Device | CPU | RAM | SSD | HDD | Xcode | macOS | Time(sec) | 
|---|---|---|---|---|---|---|---|
| Mac Pro 2019 | Xeon 2.5 GHz 28-core | 96 | 4TB | 12.2 | 11.0.1 | 90 | |
| Mac mini 2020 | M1 8-core | 16 | 1TB | 12.2 | 11.0 | 116 | |
| MacBook Pro 13" 2020 | M1 8-core | 16 | 1TB | 12.2 | 11.0 | 117 | |
| MacBook Air 13" 2020 | M1 8c (8c GPU) | 16 | 512 | 12.2 | 11.0.1 | 128 | |
| Mac mini 2020 | M1 8-core | 8 | 256 | 12.2 | 11.0.1 | 130 | |
| MacBook Air 13" 2020 | M1 8c (7c GPU) | 8 | 256 | 12.2 | 11.0.1 | 137 | |
| iMac 27" 2019 | i9 3.6 GHz 8-core | 64 | 2TB | 12.1 | 11.0.1 | 145 | |
| iMac 27" 2020 | i9 3.6 GHz 10-core | 128 | 1TB | 12.2 | 11.0.1 | 146 | |
| iMac Pro 27" 2017 | Xeon 3.2 GHz 8-Core | 32 | 1TB | 12.2 | 10.15.7 | 158 | |
| iMac 27" 2019 | i9 3.6 GHz 8-core | 40 | 512 | 12.2 | 11.0.1 | 163 | |
| MacBook Pro 16" 2019 | i9 2.4 GHz 8-core | 32 | 512 | 12.2 | 11.0.1 | 176 | |
| Mac mini 2018 | i7 3.2 GHz 6-core | 32 | 512 | 12.2 | 11.0.1 | 192 | |
| MacBook Pro 16" 2019 | i9 2.3 GHz 8-core | 32 | 1TB | 12.2 | 11.0.1 | 221 | |
| Mac mini 2018 | i7 3.2 GHz 6-core | 16 | 1TB | 12.0 | 10.15.5 | 228 | |
| iMac 27" 2017 | i7 4.2 GHz 4-core | 16 | 1TB | 12.2 | 11.0.1 | 246 | |
| MacBook Pro 16" 2019 | i7 2.6 GHz 6-core | 16 | 512 | 12.2 | 11.0.1 | 250 | |
| MacBook Pro 13" 2020 | i5 2.0 GHz 4-core | 16 | 1TB | 12.2 | 11.0.1 | 265 | |
| MacBook Pro 15" 2017 | i7 2.8 GHz 4-core | 16 | 256 | 12.2 | 11.0.1 | 282 | |
| MacBook Pro 15" 2015 | i7 2.2 GHz 4-core | 16 | 256 | 12.1 | 11.0.1 | 324 | |
| MacBook Pro 15" 2015 | i7 2.2 GHz 4-core | 16 | 256 | 12.1 | 10.15.5 | 334 | |
| MacBook Pro 15" 2014 | i7 2.5 GHz 4-core | 16 | 256 | 12.2 | 10.15.7 | 343 | |
| MacBook Pro 15" 2013 | i7 2.3 GHz 4-core | 16 | 512 | 12.2 | 10.15.7 | 374 | |
| iMac 27" 2011 | i7 3.4 GHz 4-core | 16 | 250 | 12.1 | 10.15.7 | 378 | |
| MacBook Pro 13" 2017 | i5 2.3 GHz 2-core | 16 | 256 | 12.2 | 11.0.1 | 448 | |
| MacBook Pro 13" 2016 | i5 2.9 GHz 2-core | 8 | 256 | 12.2 | 11.0.1 | 518 | |
| MacBook Pro 13" 2016 | i5 2.0 GHz 2-core | 8 | 256 | 12.2 | 11.0.1 | 574 | |
| MacBook Pro 13" 2015 | i5 2.7 Ghz 2-core | 8 | 512 | 12.2 | 10.15.7 | 597 | |
| MacBook Air 13" 2015 | i7 2.2 Ghz 2-core | 8 | 256 | 12.0 | 10.15.7 | 610 | |
| MacBook Air 13" 2020 | i3 1.1 GHz 2-core | 8 | 256 | 12.2 | 11.0.1 | 700 | |
| iMac 21.5" 2017 | i5 3.0 GHz 4-core | 16 | 1TB | 12.2 | 11.0.1 | 725 | |
| MacBook Air 2014 | i5 1.4 GHz 2-core | 4 | 128 | 12.2 | 11.0.1 | 894 | |
| MacBook Pro 2010 | i5 2.4 GHz 2-core | 8 | 480 | 12.4 | 10.15.7 | 1043 | 
| Device | CPU | RAM | SSD | HDD | Xcode | macOS | Time(sec) | 
|---|---|---|---|---|---|---|---|
| iMac 27" 2020 | i9 3.6 GHz 10-core | 64 | 512 | 11.6 | 10.15.6 | 217 | |
| iMac Pro 27" 2017 | Xeon 3.0 GHz 10-core | 64 | 1TB | 11.7 | 10.15.6 | 222 | |
| iMac 27" 2020 | i7 3.8 GHz 8-core | 64 | 512 | 11.6 | 10.15.6 | 229 | |
| iMac 27" 2020 | i7 3.8 GHz 8-core | 32 | 512 | 11.6 | 10.15.6 | 229 | |
| iMac 27" 2019 | i9 3.6 GHz 8-core | 64 | 2TB | 11.6 | 10.15.6 | 252 | |
| iMac Pro 27" 2017 | Xeon 3.2 GHz 8-core | 32 | 1TB | 11.6 | 10.15.6 | 263 | |
| Mac Mini 2018 | i7 3.2 GHz 6-core | 16 | 512 | 11.7 | 10.15.5 | 300 | |
| MacBook Pro 16" 2019 | i9 2.3 GHz 8-core | 32 | 2TB | 11.6 | 10.15.6 | 328 | |
| MacBook Pro 16" 2019 | i7 2.6 GHz 6-core | 16 | 512 | 11.6 | 10.15.6 | 353 | |
| Mac Mini 2018 | i5-8500B 3.0 GHz 6-core | 8 | 512 | 11.7 | 10.15.6 | 383 | |
| iMac 27" 2017 | i7 4.2 GHz 4-core | 48 | 2TB | 11.7 | 10.15.6 | 411 | |
| iMac 21.5" 2017 | i7-7700 3.6 GHz 4-core | 16 | 1TB | 11.7 | 10.16.6 | 419 | |
| MacBook Pro 15" 2018 | i7 2.6 GHz 6-core | 16 | 512 | 11.6 | 10.15.6 | 440 | |
| Mac Pro 2013 | E5-1650 v2 3.5 GHz 6-core | 32 | 1TB | 11.7 | 10.15.6 | 518 | |
| MacBook Pro 15" 2017 | i7 2.9 GHz 4-core | 16 | 512 | 11.6 | 10.15.6 | 583 | |
| MacBook Pro 15" 2015 | i7 2.2 GHz 4-core | 16 | 256 | 11.7 | 10.15.6 | 594 | |
| MacBook Pro 15" 2016 | i7 2.7 GHz 4-core | 16 | 1TB | 11.7 | 10.15.6 | 642 | |
| Mac Mini 2014 | i5 2.6 GHz 2-core | 8 | 1TB | 11.7 | 10.15.6 | 1193 | 
| Device | CPU | RAM | SSD | HDD | Xcode | macOS | Time(sec) | Comments | 
|---|---|---|---|---|---|---|---|---|
| Ryzentosh | AMD 5950x 4.3 Ghz 16-c | 32 | 1TB | 2TB | 13.1 | 11.6 | 71 | |
| Hackintosh | i7-9700K 3.6 Ghz 8-core | 16 | 512 | 2TB | 12.5.1 | 11.4 | 177 | 
| Device | CPU | RAM | SSD | HDD | Xcode | macOS | Time(sec) | Comments | 
|---|---|---|---|---|---|---|---|---|
| Hackintosh | i9-10850K 3.6 Ghz 10-core | 64 | 1TB | 12.2 | 10.15.7 | 113 | ||
| Hackintosh | i9-10900k 3.7 Ghz 10-core | 64 | 512 | 6TB | 12.2 | 11.0.1 | 122 | |
| NLEstation 2020 | i9 3.6 GHz 8-core | 64 | 1TB | 12.2 | 10.15.7 | 129 | ||
| Hackintosh | i7-10700K 3.8 Ghz 8-core | 32 | 1TB | 12.2 | 10.15.7 | 130 | ||
| Hackintosh | AMD 3800x 4.2 Ghz 8-core | 64 | 1TB | 12.2 | 10.15.6 | 137 | ||
| Ryzentosh | R9 3900 3.8 Ghz 12-core | 32 | 512 | 12.1 | 10.15.4 | 161 | ||
| Ryzentosh | R5 3600 3.6 Ghz 6-core | 16 | 512 | 12.3 | 10.15.7 | 175 | ||
| Hackintosh | i5-9400 2.9 Ghz 6-core | 32 | 512 | 2TB | 12.1 | 10.15.7 | 191 | |
| Hackintosh | i3-10100 3.6 Ghz 4-core | 32 | 1TB | 12.1 | 10.15.7 | 233 | ||
| Hackintosh | i7-4770K 3.5 Ghz 4-core | 16 | 2TB | 8TB | 12.2 | 10.15.7 | 276 | |
| QEMU VM | Xeon 1.8 Ghz 4-core | 8 | 32 | 12.2 | 10.15.7 | 775 | 
| Device | CPU | RAM | SSD | HDD | Xcode | macOS | Time(sec) | Comments | 
|---|---|---|---|---|---|---|---|---|
| Hackintosh | i5-8400 2.8 Ghz 6-core | 32 | 512 | 11.6 | 10.15.6 | 409 | ||
| Ryzentosh | R5 3600 3.6 Ghz 6-core | 16 | 1TB | 11.7 | 10.15.6 | 312 | 
Since Oct 23, 2021, XcodeBenchmark only supports Xcode 13.0 or above.
- Download and install Xcode.
 - Open Xcode and install 
additional tools(Xcode should suggest it automatically). - Download and unarchive XcodeBenchmark project.
 
- Disconnect the network cable and turn off WiFi.
 - Make sure to disable all software running at startup
- Go to 
System Preferences->Users and Groups->User->Login Items. - Empty the list.
 
 - Go to 
 - Update 
Batterysettings- Go to 
System Preferences->Battery->Battery/Power Adapter->Turn display offand set 15 min. 
 - Go to 
 - Reboot and cool down your Mac.
 - Connect to the power adapter if you're using a MacBook.
 
- Open the 
Terminalapp. - Write 
cdand drag & dropXcodeBenchmarkfolder to theTerminalapp to formcd path/to/xcode-benchmark. - Run 
sh benchmark.shinTerminal. - When 
XcodeBenchmarkhas completed you will see this information. - Upload your results, see Contribution section.
 
Q: What's inside?
A framework that includes 42 popular CocoaPods libraries and 70+ dependencies in total.
| Language | files | blank | comment | code | 
|---|---|---|---|---|
| C/C++ Header | 2785 | 58618 | 143659 | 215644 | 
| C++ | 750 | 24771 | 30788 | 182663 | 
| Objective C | 882 | 27797 | 23183 | 148244 | 
| Swift | 1122 | 21821 | 35225 | 113945 | 
| C | 390 | 15064 | 23319 | 84119 | 
| Objective C++ | 69 | 2980 | 2026 | 15561 | 
| Markdown | 61 | 4865 | 1 | 15131 | 
| XML | 144 | 1022 | 10 | 13047 | 
| Bourne Shell | 3 | 244 | 209 | 1321 | 
| JSON | 22 | 1 | 0 | 1114 | 
| Pascal | 2 | 87 | 185 | 180 | 
| YAML | 1 | 0 | 0 | 5 | 
| SUM: | 6231 | 157270 | 258605 | 790974 | 
Q: What do the results mean?
- First of all, the project is huge. Most projects are of a much smaller size.
 - 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.
 
Q: Will it affect my other Xcode projects?
- A separate build folder is created for the benchmark run that is then deleted after it finishes. The folder goes to about 2.5GB.
 
You are free to use these results in your videos and articles as well as to run XcodeBenchmark to compare Macs. Please make sure to add the link to this repository.
Since May 3, 2021, XcodeBenchmark must be used with Xcode 12.5 or above.
- If you have any non-Apple hardware components - submit your results to the 
Custom Hardwaretable. - Submit a pull request.
 
Make sure:
- All steps are performed
 Timecolumn is still sorted after insertion.- Attach a screenshot with a compilation time. Example.
 - The content in cells is centered.
 
- Maxim Eremenko
 - Max Tech YouTube channel
 - @bitsmakerde
 - @ivanfeanor
 - @sverrisson
 - @radianttap
 - @rynaardb
 - @ekhodykin
 - @N0un
 - Paul Zabelin
 - @theome
 - @Kuluum
 - @villy21
 - @zhi6w
 - @soorinpark
 - @igorkulman
 - @matopeto
 - @morid1n
 - @passatgt
 - @ignatovsa
 - @azonov
 - @euwars
 - @samadipour
 - @dmcrodrigues
 - @MeshkaniMohammad
 - @CasperNEw
 - @iOSleep
 - @iPader
 - @boltomli
 - @Jimmy-Lee
 - @kotalab
 - @valeriyvan
 - @twlatl
 - @ypwhs
 - @freeubi
 - @bariscck
 - @thisura98
 - @vitallii-t
 - @kenji21
 - @hornmichaels
 - @sahilsatralkar
 - @idevid
 - @vincentneo
 - @BradPatras
 - @LightFocus
 - @pablosichert
 - @vm-tester
 - @rursache
 - @wendyliga
 - @mlch911
 - @apvex
 - @Jeehut