ashfurrow/xcode-hardware-performance

Results from running Xcode on a non-trivial open source project using various Macs

1,119

286 commits

updated Nov 15, 2021

See the code

README

⚠️ This repository is deprecated, but the results will stay around for posterity. I recommend Maxim Eremenko' XcodeBenchmark for comparing compile times on different Apple hardware. See below for more details. ⚠️

Xcode Hardware Performance

These are the results from running Xcode on a non-trivial open source project using various Macs. The goal is to give developers a relative idea of how each computer model compares to one another. Read the specifics and contributing sections for more info.

Xcode 12

🖥Computer ModelCPURAMFresh Build TimeIncremental Build TimeXcode VersionDate & Commit Hash
💻MacBook Pro 13" (Late 2020)Apple M116 GB0:210:0412.32020-12-27 (commit)
💻MacBook Pro 15" (Mid 2018)i7-8850H (2,6 GHz)16 GB0:540:0912.32020-12-27 (commit)
💻MacBook Pro 13" (Early 2015)i5-5257U (2.7 GHz)16 GB1:480:1712.22020-11-20 (commit)
💻MacBook Pro 13" (Early 2015)i5-5257U (2.7 GHz)16 GB1:320:1512.22020-11-20 (commit)
Mac Mini (Late 2020)Apple M116 GB0:190:0412.22020-11-20 (commit)
Mac Mini (2018)i7-8700B (3.2GHz)32 GB0:400:0812.22020-11-25 (commit)
💻MacBook Pro (Late 2020)Apple M116 GB0:350:0412.22020-11-28 (commit)
💻MacBook Pro 16",
Retina, 2019
i9-9880H (2.3 GHz)32 GB0:310:0712.22020-11-26 (commit)
💻MacBook Pro 15" (Mid 2015)i7-4770HQ (2.2 GHz)16 GB0:550:1512.22020-11-26 (commit)
🖥iMac Pro 27" (Late 2017)3.2 GHz 8-Core Intel Xeon W32 GB0:330:0712.22020-12-07 (commit)
💻MacBook Air (Late 2020)Apple M116 GB0:330:0612.22020-12-07 (commit)
💻MacBook Air (Late 2018)I5-8210Y (1.6 GHz)8 GB2:150:2012.22020-12-07 (commit)
🖥MacBook Air (Late 2020)Apple M18 GB0:200:0812.42021-3-13 (commit)
⌨️Custom PCAMD Ryzen 5 3600 3.6 GHz16 GB0.340.0812.42021-3-21

Xcode 11

🖥Computer ModelCPURAMFresh Build TimeIncremental Build TimeXcode VersionDate & Commit HashNew Build System?
🖥iMac 27"
512GB SSD, 2020
3.8 GHz i764 GB0:260:0711.72020-09-14 (commit)✔️
🖥iMac 27"
512GB SSD, 2020
3.8 GHz i78 GB0:330:0511.72020-09-14 (commit)✔️
🖥iMac 27"
512GB SSD, 2020
3.8 GHz i772 GB0:290:0711.72020-09-14 (commit)✔️
⌨️Custom PCIntel i9 9940X 4.6GHz(all cores)64 GB0:270:0811.4.12020-05-15
⌨️Custom PCAMD Ryzen 9 3950X 4.3GHz(all cores)32 GB0:210:0311.42020-04-16 (commit)✔️
⌨️Custom PCIntel i7-10700k 5.0GHz(all cores)32 GB0:240:0711.62020-07-25✔️
🖥iMac 27"
512GB SSD, 2019
3.6 GHz i940 GB0:260:511.3.12020-01-22 (commit)✔️
⌨️Custom PC QEMUAMD Ryzen 9 3900X (20 cores qemu)48 GB0:270:0711.6.02020-07-25 (commit)✔️
🖥iMac Pro
10 Core, 2017
3.0 GHz Xeon W64 GB0:280:0811.4.12020-04-23 (commit)✔️
💻MacBook Pro 16",
Retina, 2019,
500 GB SSD
i9-9980HK 2.4 GHz64 GB0:320:1011.42020-04-02(commit)
⌨️Custom PCi7-9700K 3.6 GHz (Stock)32 GB0:350:0611.2.12019-11-26 (commit)✔️
⌨️Custom PCi9-9900K 3.6 GHz (Stock)64 GB0:350:0611.3.12020-02-29 (commit)?
Mac Mini,
Late 2018, 512GB SSD
3.2 GHz i732 GB0:370:1111.3.12020-01-15 (commit)✔️
Mac Mini,
Late 2018, 512GB SSD
3.2 GHz i732 GB0:370:1111.3.12020-01-15 (commit)❌
💻MacBook Pro 16",
Retina, 2019,
1 TB SSD
i9-9880H 2.3 GHz32 GB0:390:0911.2.1 (11B500)2019-11-26 (commit)✔️
Mac Pro,
1 TB SSD,
Late 2019
3.2 GHz 16-Core Xeon32 GB0:400:0611.32020-01-10?
💻MacBook Pro 16",
Retina, 2019,
1 TB SSD
i9 2.4 GHz32 GB0:400:0711.32020-01-10?
💻MacBook Pro 15",
Retina, Mid 2015,
512GB SSD
2.5 GHz i7-4870HQ16 GB0:450:0711.3.12020-01-23 (commit)✔️
💻MacBook Pro 15",
Retina, 2018,
1TB SSD
2,6 GHz 6-Core i732 GB0:440:0911.42020-05-12 (pull)✔️
Mac Pro, 2013, 512GB Flash storage3.3 GHz Xeon E5-2667v264 GB0:540:0811.3.12020-02-29 (commit)?
🖥iMac 5K 27",
Late 2014,
1 TB SSD
4.0 GHz i7-4790K32 GB0:570:2211.3.12020-02-07 (commit)✔️
💻MacBook Pro 15",
Retina, 2016,
512GB SSD
2.7 GHz i7-6820HQ16 GB0:590:0811.3.12020-01-18 (commit)✔️
💻MacBook Pro 15",
Retina, 2012,
751GB SSD
2.7 GHz i7-3820QM16 GB1:020:1611.3.12020-02-28 (commit)✔️
Mac Mini,
Late 2012, 250GB SSD (Samsung 850 EVO)
2.3 GHz i716 GB1:060:1711.3.12020-01-15 (commit)✔️
💻MacBook Pro 15",
Retina, 2019,
512GB SSD
2.3 GHz i916 GB1:100:0511.3.12020-02-16 (commit)✔️
🖥iMac 27"
512GB SSD, Late 2013
3.2 GHz i516 GB1:130:2111.32019-11-06 (commit)✔️
💻MacBook Pro 13",
Retina, Mid 2014,
256GB SSD
2.6 GHz i5-4278U8Gb1:430:2711.22019-11-06 (commit)✔️
💻MacBook Pro 15",
Mid 2009,
240GB SSD
2,66 GHz Intel Core 2 Duo8 GB2:380:2611.42020-02-29 (commit)?
⌨️Custom PCAMD Ryzen 7 1700X @ 3.75GHz16 GB0:410:0611.52020-06-23 (commit]

Xcode 10

🖥Computer ModelCPURAMFresh Build TimeIncremental Build TimeXcode VersionDate & Commit HashNew Build System?
⌨️Custom PCi9-9900K 3.6 GHz (Stock)32 GB0:170:0510.12019-05-23✔️
Mac Mini,
Late 2018, 256GB SSD
3.2 GHz i7-8700B32 GB0:250:0210.2.12019-07-02 (commit)✔️
⌨️Custom PCi9-9900K 4.8 GHz32 GB0:250:0710.12018-11-04✔️
💻MacBook Pro
Retina, 15", Mid 2018
2,6 GHz i7-8850H16 GB0:280:0910.12019-01-12 (commit)✔️
🖥iMac 5K 27",
Early 2019,
512GB SSD
3.6 GHz i9-9900K16 GB0:290:0510.2.12019-06-06 (commit)✔️
⌨️Custom PC4.0 GHz i7-8086K32 GB0:310:1110.12019-01-10 (commit)✔️
💻MacBook Pro
Retina, 15", Mid 2019
2.3 GHz i9-9880H16 GB0:320:0510.32019-09-03 (commit)✔️
Mac Mini,
Late 2018, 512GB SSD
3.2 GHz i7-8700B16 GB0:320:0710.12018-11-15 (commit)✔️
Mac Mini,
Late 2018, 512GB SSD
3.2 GHz i732 GB0:330:1210.2.12020-01-15 (commit)✔️
💻MacBook Pro
Retina, 15", Mid 2018
2.2 GHz i7-8750H16 GB0:350:0810.12018-11-16 (commit)✔️
💻MacBook Pro
Retina, 15", Mid 2015
2.8 GHz i7-4980HQ16 GB0:360:03810.02018-09-24 (commit)✔️
🖥iMac 5K 27",
Early 2019,
256GB SSD
3.0 GHz i5-850040 GB0:380:0810.32019-08-07✔️
🖥iMac 5K 27",
Late 2014,
1 TB SSD
4.0 GHz i7-4790K32 GB0:400:1310.12019-03-08 (commit)✔️
Mac Pro
Flash Storage, Late 2013
2.7 GHz 12-Core Xeon E564 GB0:400:0810.12018-12-15 (commit)✔️
💻MacBook Pro
Retina, 15", Mid 2012
2.6 GHz i7-3720QM16 GB0:400:04210.02018-09-13 (commit)✔️
Mac Mini,
Late 2018, 256GB SSD
3.0 GHz i5-8500B8 GB0:420:0810.12018-11-15 (commit)✔️
💻MacBook Pro
Touch Bar, 15", Mid 2018
2.9 GHz i9-8950HK32 GB0:430:0610.22019-05-27 (commit)✔️
💻MacBook Pro
Retina, 15", Mid 2015
2.5 GHz i7-4870HQ16 GB0:460:1010.12019-03-03 (commit)✔️
💻MacBook Pro
Retina, 13", 2018, Four Thunderbolt 3 Ports
2.7 GHz i7-8559U16 GB0:490:0910.2.12019-08-01 (commit)✔️
💻MacBook Pro
Retina, 15", Mid 2014
2.8 GHz i7-4980HQ16 GB0:490:0910.12018-11-16 (commit)✔️
Mac Mini,
Late 2012, 250GB SSD (Samsung 850 EVO)
2.3 GHz i716 GB1:030:2110.2.12020-01-15 (commit)✔️
Mac Mini,
Late 2012
2.3 GHz i7-3615QM8 GB1:050:1410.12018-11-15 (commit)✔️
💻MacBook Pro
Retina, 13", Early 2015
2.7 GHz i5-5257U8 GB1:260:1210.12019-02-15 (commit)✔️
💻MacBook Air
13", Mid 2017
1.8 GHz i5-5350U8 GB1:470:1510.02018-10-01 (commit)✔️
💻MacBook Pro
Non-Retina, 13", Mid 2012,
180 GB SSD
2.5 GHz i5-3210M16 GB2:350:1710.12018-11-16 (commit)✔️

Xcode 9

🖥Computer ModelCPURAMFresh Build TimeIncremental Build TimeXcode VersionDate & Commit HashNew Build System?
💻MacBook Pro
13", Mid-2017, 256GB SSD
2.3 GHz i5 (I5-7360U)8 GB01:120:129.22018-06-29✔️
💻MacBook Pro
13", Mid-2017, 256GB SSD
2.3 GHz i5 (I5-7360U)8 GB01:420:129.22018-06-29❌
Mac Mini,
Mid-2011, 128GB SSD
2.3 GHz i5 (I5-2415M)8 GB02:040:209.22018-07-04✔️
Mac Mini,
Mid-2011, 128GB SSD
2.3 GHz i5 (I5-2415M)8 GB03:120:209.22018-07-04❌
⌨️Custom PC
Early 2018
i7-8700K 4.70+ GHz32 GB0:190:072018-03-11 (commit)✔️
⌨️Custom PC
Early 2016
i7-6700k 4.5 GHz32 GB0:230:079.4.12018-05-19 (commit)✔️
💻MacBook Pro
Retina, 13", Mid 2018
2.7 GHz i7-8559U16 GB0:270:099.4.12018-05-19 (commit)✔️
💻MacBook Pro
Retina, 15", 2018
2.9 GHz i932 GB0:300:042018-05-19 (commit)✔️
💻MacBook Pro
Retina, 15", Mid 2018
2.9 GHz i932 GB0:320:042018-05-19 (commit)✔️
⌨️Custom PC
Early 2018
i7-7700k 4.5 GHz16 GB0:350:052018-03-10✔️
Mac Pro
Flash Storage, Late 2013
3.7 GHz 4-Core Xeon E532 GB0:350:119.4.12018-06-20 (commit)✔️
⌨️Custom PC
Early 2018
i7-8700K 4.70+ GHz32 GB0:360:072018-02-19 (commit)❌
⌨️Custom PC
Late 2015
i7-4790k 4.0 GHz32 GB0:400:072018-02-22 (commit)❌
🖥iMac Pro
10 Core, Late 2017
3 GHz Intel Xeon W64 GB0:410:072017-12-28❌
💻MacBook Pro
Retina, 15", Mid 2018
2.2 GHz i732 GB0:420:092018-05-19 (commit)✔️
🖥iMac Pro
18 Core, Late 2017
2.3 GHz Intel Xeon W128 GB0:470:072018-03-07 (commit)❌
⌨️Custom PC
Early 2018
i7-7700k 4.5 GHz16 GB0:480:072018-03-10❌
🖥iMac 27"
5K 1TB SSD, Mid 2017
4,2 GHz i740 GB0:490:082018-01-18❌
💻MacBook Pro
Retina, 15", 2017
2.9 GHz i716 GB0:490:162017-10-09✔️
💻MacBook Pro
Retina, 15", 2017
2.9 GHz i716 GB0:500:152017-10-09❌
💻MacBook Pro
Retina, 15", 2015
2.5 GHz i716 GB0:510:099.22018-03-02 (commit)✔️
🖥MacPro Late 20132.7 GHz 12core Intel Xeon E564 GB0:540:102018-03-07 (commit)❌
🖥iMac 27"
256GB SSD, Late 2013
3.2 GHz i524 GB0:560:109.22018-03-02 (commit)✔️
💻MacBook Pro
Retina, 15", 2016
2.9 GHz i716 GB1:040:099.4.12018-07-18 (commit)✔️
💻MacBook Pro
Retina, 15", Mid 2012
2.6 GHz i7-3720QM16 GB1:040:139.4.12018-05-19 (commit)✔️
💻MacBook Pro
Retina, 15", 2016
2.9 GHz i716 GB1:060:109.4.12018-07-18 (commit)❌
💻MacBook Pro
Retina, 15", Late 2013
2.6 GHz i716 GB1:090:122018-02-28✔️
💻MacBook Pro
Retina, 13", Early 2015
2.7 GHz i58 GB1:120:182018-05-19 (commit)✔️
Mac Pro
Flash Storage, Late 2013
3.7 GHz 4-Core Xeon E532 GB1:150:109.4.12018-06-20 (commit)❌
💻MacBook Pro
Retina, 15", 2015
2.8 GHz i716 GB1:170:122018-01-02❌
💻MacBook Pro
Retina, 15", 2015
2.5 GHz i716 GB1:200:099.22018-03-02 (commit)❌
🖥iMac 27"
256GB SSD, Late 2013
3.2 GHz i524 GB1:270:109.22018-03-02 (commit)❌
Mac Mini
Mid 2012, 512 SSD
2.3 GHz Quad-Core i716 GB1:320:182017-10-20❌
💻MacBook Pro
Retina, 15", 2017
2.8 GHz i716 GB1:500:14❌
⌨️Custom Laptop
Mid 2018
i5-8250u 3.4 GHz16 GB1:580:109.32018-05-11❌
🖥iMac 27"
120GB SSD, Mid 2010
2.93 GHz i78 GB2:050:169.32018-03-21❌
💻MacBook Pro
Retina, 13", Early 2015
2.7 GHz i58 GB2:250:312018-05-19 (commit)❌
💻MacBook
Retina, 15", Mid 2012
2.6 GHz i78 GB2:260:23❌
💻MacBook Pro
Retina, 13", 2014
2.6 GHz i58 GB2:300:232018-01-04❌
💻MacBook Pro
13", Mid 2012
2.9 GHz i78 GB2:300:23❌

Xcode 8

🖥Computer ModelCPURAMFresh Build TimeIncremental Build TimeDate
🖥iMac 5K
512GB Flash, 27", Late 2015
4.0 GHz i732 GB0:280:06
Mac Pro
Flash Storage, Late 2013
3.5 GHz 6-Core Xeon E532 GB0:300:05
💻MacBook Pro
Retina, 15", Mid 2015
2.8 GHz i716 GB0:390:07
💻MacBook Pro
Retina, 15", Mid 2015
2.5 GHz i716 GB0:420:09
💻MacBook Pro
Retina, 15", Mid 2012
2.3 GHz i716 GB0:460:08
💻MacBook Pro
Retina, 15", Early 2013
2.4 GHz i78 GB0:470:10
Mac Mini
Mid 2012, 512 SSD
2.3GHz Quad-Core i716GB0:500:09
💻MacBook Pro
Retina, 15", Mid 2014
2.2 GHz i716 GB0:510:07
💻MacBook Pro
Retina, 15", Late 2013
2.3 GHz i716 GB0:530:09
🖥iMac
HDD 1 TB, 27", Late 2012
3.4 GHz i78 GB0:540:12
💻MacBook Pro
Touch Bar, 15", Late 2016
2.9 GHz i716 GB0:540:17
💻MacBook Pro
15", Early 2011
2.0 GHz i78 GB1:000:13
💻MacBook Pro
15" Early 2011, SSD
2.0 GHz i78 GB1:010:10
💻MacBook Pro
Touch Bar, 15", Late 2016
2.9 GHz i716 GB1:040:26
💻MacBook Pro
13", Early 2015, 1TB SSD
3.1 Ghz i716 GB1:250:09
💻MacBook Pro
Retina, 13", Early 2015
2.7 GHz i58 GB1:350:11
💻MacBook
Retina, 12", Mid 2017
1.4 GHz i716 GB1:490:16
💻MacBook Pro
13", Mid 2012 256 SSD
2.5 GHz i58 GB2:080:19
💻MacBook Air
13", Mid 2012, 512 SSD
2 Ghz i78 GB2:100:11
💻MacBook
Retina, 12", Early 2016
1.2 GHz m58 GB2:100:12
💻MacBook Pro
13", Late 2013 256 SSD
2.4 GHz i58 GB2:170:23
💻MacBook
Retina, 12", Early 2015
1.2 GHz M8 GB2:280:12
💻MacBook Pro
13", Early 2011, 512 SSD
2.7 Ghz i78 GB2:300:16
💻MacBook Air
13", Mid 2013, 128 SSD
1.3 Ghz i54 GB2:580:24
💻MacBook
Retina, 12", Early 2015
1.1 GHz M8 GB3:000:12
💻MacBook Pro
13", Mid 2010 512 SSD
2.4 GHz Intel Core 2 Duo8 GB3:010:24
🖥iMac
HDD 500 GB, 21.5", Mid 2010
3.06 GHz i312 GB3:590:14
🖥iMac
HDD 1 TB, 21.5", Late 2012
2.7 GHz i58 GB4:150:33

Specifications

For the test, I decided to use an app that I actually work on: eidolon. Unlike most iOS apps, the project is stable and not under active development, so it's a prime candidate for accurate-ish benchmarking.

For "fresh" builds, I cleaned the build folder (⌘⇧K) repeatedly until it worked with no permissions problems. Then I sat and waited for Xcode to index the project. I also made sure the simulator (iPad Air 2) was closed, so these times include booting the simulator and launching the app. Each version of Xcode above should use the latest iOS version that it ships with. Then I hit ⌘R and start a timer, only ending it when the app had fully launched.

"Incremental" builds represent a more common use case: changing one file and recompiling with the simulator already running. I added print("hello!") to application(: didFinishLaunchingWithOptions:) and hit ⌘R, timing the time it took for the app to launch.

I repeated each test a few times and took their average times.

Contributing

It would be super-cool if we could perform the above tests on a variety of machines and consolidate the results here. Below are the instructions to download the code (compatible with Apple Silicon thanks to @pawelurb), and send a pull request adding your own results. I'd super-appreciate it! 🙇

This repository is deprecated, but the results will stay around for posterity. See below for more.

git clone -b apple-silicon-compatibility https://github.com/artsy/eidolon.git
cd eidolon
bundle install
bundle exec fastlane oss

Please note that this project is released with a Contributor Code of Conduct. By participating in this project, you agree to abide by its terms.

Repo Status

This repository was created in 2015 when I worked at Artsy. The main project I worked on at the time (Eidolon) was open source, making it an ideal test case for measuring Xcode compile times of real-world apps. However, I stopped working at Artsy in 2021 and Artsy is no longer maintaining Eidolon for compatibility with the latest versions of Swift, Xcode, CocoaPods, and open source dependencies.

I could continue maintaining the repo for Artsy, since Eidolon remains open source, but honestly, keeping this Xcode benchmarking repo maintained is a lot of work, and a better repository exists.

So at the end of 2021, I'm deprecating this repository. It was a hell of a ride. I'm grateful to Artsy for the opportunity to leverage their code for the good of the iOS developer community. And I'm most grateful to dozens of contributors who made this a valuable resource. Thank you, everyone.

License

This work is licensed under a Creative Commons Attribution 4.0 International License.

ashfurrow/xcode-hardware-performance

Results from running Xcode on a non-trivial open source project using various Macs

1,119

286 commits

updated Nov 15, 2021

See the code

README

⚠️ This repository is deprecated, but the results will stay around for posterity. I recommend Maxim Eremenko' XcodeBenchmark for comparing compile times on different Apple hardware. See below for more details. ⚠️

Xcode Hardware Performance

These are the results from running Xcode on a non-trivial open source project using various Macs. The goal is to give developers a relative idea of how each computer model compares to one another. Read the specifics and contributing sections for more info.

Xcode 12

🖥Computer ModelCPURAMFresh Build TimeIncremental Build TimeXcode VersionDate & Commit Hash
💻MacBook Pro 13" (Late 2020)Apple M116 GB0:210:0412.32020-12-27 (commit)
💻MacBook Pro 15" (Mid 2018)i7-8850H (2,6 GHz)16 GB0:540:0912.32020-12-27 (commit)
💻MacBook Pro 13" (Early 2015)i5-5257U (2.7 GHz)16 GB1:480:1712.22020-11-20 (commit)
💻MacBook Pro 13" (Early 2015)i5-5257U (2.7 GHz)16 GB1:320:1512.22020-11-20 (commit)
Mac Mini (Late 2020)Apple M116 GB0:190:0412.22020-11-20 (commit)
Mac Mini (2018)i7-8700B (3.2GHz)32 GB0:400:0812.22020-11-25 (commit)
💻MacBook Pro (Late 2020)Apple M116 GB0:350:0412.22020-11-28 (commit)
💻MacBook Pro 16",
Retina, 2019
i9-9880H (2.3 GHz)32 GB0:310:0712.22020-11-26 (commit)
💻MacBook Pro 15" (Mid 2015)i7-4770HQ (2.2 GHz)16 GB0:550:1512.22020-11-26 (commit)
🖥iMac Pro 27" (Late 2017)3.2 GHz 8-Core Intel Xeon W32 GB0:330:0712.22020-12-07 (commit)
💻MacBook Air (Late 2020)Apple M116 GB0:330:0612.22020-12-07 (commit)
💻MacBook Air (Late 2018)I5-8210Y (1.6 GHz)8 GB2:150:2012.22020-12-07 (commit)
🖥MacBook Air (Late 2020)Apple M18 GB0:200:0812.42021-3-13 (commit)
⌨️Custom PCAMD Ryzen 5 3600 3.6 GHz16 GB0.340.0812.42021-3-21

Xcode 11

🖥Computer ModelCPURAMFresh Build TimeIncremental Build TimeXcode VersionDate & Commit HashNew Build System?
🖥iMac 27"
512GB SSD, 2020
3.8 GHz i764 GB0:260:0711.72020-09-14 (commit)✔️
🖥iMac 27"
512GB SSD, 2020
3.8 GHz i78 GB0:330:0511.72020-09-14 (commit)✔️
🖥iMac 27"
512GB SSD, 2020
3.8 GHz i772 GB0:290:0711.72020-09-14 (commit)✔️
⌨️Custom PCIntel i9 9940X 4.6GHz(all cores)64 GB0:270:0811.4.12020-05-15
⌨️Custom PCAMD Ryzen 9 3950X 4.3GHz(all cores)32 GB0:210:0311.42020-04-16 (commit)✔️
⌨️Custom PCIntel i7-10700k 5.0GHz(all cores)32 GB0:240:0711.62020-07-25✔️
🖥iMac 27"
512GB SSD, 2019
3.6 GHz i940 GB0:260:511.3.12020-01-22 (commit)✔️
⌨️Custom PC QEMUAMD Ryzen 9 3900X (20 cores qemu)48 GB0:270:0711.6.02020-07-25 (commit)✔️
🖥iMac Pro
10 Core, 2017
3.0 GHz Xeon W64 GB0:280:0811.4.12020-04-23 (commit)✔️
💻MacBook Pro 16",
Retina, 2019,
500 GB SSD
i9-9980HK 2.4 GHz64 GB0:320:1011.42020-04-02(commit)
⌨️Custom PCi7-9700K 3.6 GHz (Stock)32 GB0:350:0611.2.12019-11-26 (commit)✔️
⌨️Custom PCi9-9900K 3.6 GHz (Stock)64 GB0:350:0611.3.12020-02-29 (commit)?
Mac Mini,
Late 2018, 512GB SSD
3.2 GHz i732 GB0:370:1111.3.12020-01-15 (commit)✔️
Mac Mini,
Late 2018, 512GB SSD
3.2 GHz i732 GB0:370:1111.3.12020-01-15 (commit)❌
💻MacBook Pro 16",
Retina, 2019,
1 TB SSD
i9-9880H 2.3 GHz32 GB0:390:0911.2.1 (11B500)2019-11-26 (commit)✔️
Mac Pro,
1 TB SSD,
Late 2019
3.2 GHz 16-Core Xeon32 GB0:400:0611.32020-01-10?
💻MacBook Pro 16",
Retina, 2019,
1 TB SSD
i9 2.4 GHz32 GB0:400:0711.32020-01-10?
💻MacBook Pro 15",
Retina, Mid 2015,
512GB SSD
2.5 GHz i7-4870HQ16 GB0:450:0711.3.12020-01-23 (commit)✔️
💻MacBook Pro 15",
Retina, 2018,
1TB SSD
2,6 GHz 6-Core i732 GB0:440:0911.42020-05-12 (pull)✔️
Mac Pro, 2013, 512GB Flash storage3.3 GHz Xeon E5-2667v264 GB0:540:0811.3.12020-02-29 (commit)?
🖥iMac 5K 27",
Late 2014,
1 TB SSD
4.0 GHz i7-4790K32 GB0:570:2211.3.12020-02-07 (commit)✔️
💻MacBook Pro 15",
Retina, 2016,
512GB SSD
2.7 GHz i7-6820HQ16 GB0:590:0811.3.12020-01-18 (commit)✔️
💻MacBook Pro 15",
Retina, 2012,
751GB SSD
2.7 GHz i7-3820QM16 GB1:020:1611.3.12020-02-28 (commit)✔️
Mac Mini,
Late 2012, 250GB SSD (Samsung 850 EVO)
2.3 GHz i716 GB1:060:1711.3.12020-01-15 (commit)✔️
💻MacBook Pro 15",
Retina, 2019,
512GB SSD
2.3 GHz i916 GB1:100:0511.3.12020-02-16 (commit)✔️
🖥iMac 27"
512GB SSD, Late 2013
3.2 GHz i516 GB1:130:2111.32019-11-06 (commit)✔️
💻MacBook Pro 13",
Retina, Mid 2014,
256GB SSD
2.6 GHz i5-4278U8Gb1:430:2711.22019-11-06 (commit)✔️
💻MacBook Pro 15",
Mid 2009,
240GB SSD
2,66 GHz Intel Core 2 Duo8 GB2:380:2611.42020-02-29 (commit)?
⌨️Custom PCAMD Ryzen 7 1700X @ 3.75GHz16 GB0:410:0611.52020-06-23 (commit]

Xcode 10

🖥Computer ModelCPURAMFresh Build TimeIncremental Build TimeXcode VersionDate & Commit HashNew Build System?
⌨️Custom PCi9-9900K 3.6 GHz (Stock)32 GB0:170:0510.12019-05-23✔️
Mac Mini,
Late 2018, 256GB SSD
3.2 GHz i7-8700B32 GB0:250:0210.2.12019-07-02 (commit)✔️
⌨️Custom PCi9-9900K 4.8 GHz32 GB0:250:0710.12018-11-04✔️
💻MacBook Pro
Retina, 15", Mid 2018
2,6 GHz i7-8850H16 GB0:280:0910.12019-01-12 (commit)✔️
🖥iMac 5K 27",
Early 2019,
512GB SSD
3.6 GHz i9-9900K16 GB0:290:0510.2.12019-06-06 (commit)✔️
⌨️Custom PC4.0 GHz i7-8086K32 GB0:310:1110.12019-01-10 (commit)✔️
💻MacBook Pro
Retina, 15", Mid 2019
2.3 GHz i9-9880H16 GB0:320:0510.32019-09-03 (commit)✔️
Mac Mini,
Late 2018, 512GB SSD
3.2 GHz i7-8700B16 GB0:320:0710.12018-11-15 (commit)✔️
Mac Mini,
Late 2018, 512GB SSD
3.2 GHz i732 GB0:330:1210.2.12020-01-15 (commit)✔️
💻MacBook Pro
Retina, 15", Mid 2018
2.2 GHz i7-8750H16 GB0:350:0810.12018-11-16 (commit)✔️
💻MacBook Pro
Retina, 15", Mid 2015
2.8 GHz i7-4980HQ16 GB0:360:03810.02018-09-24 (commit)✔️
🖥iMac 5K 27",
Early 2019,
256GB SSD
3.0 GHz i5-850040 GB0:380:0810.32019-08-07✔️
🖥iMac 5K 27",
Late 2014,
1 TB SSD
4.0 GHz i7-4790K32 GB0:400:1310.12019-03-08 (commit)✔️
Mac Pro
Flash Storage, Late 2013
2.7 GHz 12-Core Xeon E564 GB0:400:0810.12018-12-15 (commit)✔️
💻MacBook Pro
Retina, 15", Mid 2012
2.6 GHz i7-3720QM16 GB0:400:04210.02018-09-13 (commit)✔️
Mac Mini,
Late 2018, 256GB SSD
3.0 GHz i5-8500B8 GB0:420:0810.12018-11-15 (commit)✔️
💻MacBook Pro
Touch Bar, 15", Mid 2018
2.9 GHz i9-8950HK32 GB0:430:0610.22019-05-27 (commit)✔️
💻MacBook Pro
Retina, 15", Mid 2015
2.5 GHz i7-4870HQ16 GB0:460:1010.12019-03-03 (commit)✔️
💻MacBook Pro
Retina, 13", 2018, Four Thunderbolt 3 Ports
2.7 GHz i7-8559U16 GB0:490:0910.2.12019-08-01 (commit)✔️
💻MacBook Pro
Retina, 15", Mid 2014
2.8 GHz i7-4980HQ16 GB0:490:0910.12018-11-16 (commit)✔️
Mac Mini,
Late 2012, 250GB SSD (Samsung 850 EVO)
2.3 GHz i716 GB1:030:2110.2.12020-01-15 (commit)✔️
Mac Mini,
Late 2012
2.3 GHz i7-3615QM8 GB1:050:1410.12018-11-15 (commit)✔️
💻MacBook Pro
Retina, 13", Early 2015
2.7 GHz i5-5257U8 GB1:260:1210.12019-02-15 (commit)✔️
💻MacBook Air
13", Mid 2017
1.8 GHz i5-5350U8 GB1:470:1510.02018-10-01 (commit)✔️
💻MacBook Pro
Non-Retina, 13", Mid 2012,
180 GB SSD
2.5 GHz i5-3210M16 GB2:350:1710.12018-11-16 (commit)✔️

Xcode 9

🖥Computer ModelCPURAMFresh Build TimeIncremental Build TimeXcode VersionDate & Commit HashNew Build System?
💻MacBook Pro
13", Mid-2017, 256GB SSD
2.3 GHz i5 (I5-7360U)8 GB01:120:129.22018-06-29✔️
💻MacBook Pro
13", Mid-2017, 256GB SSD
2.3 GHz i5 (I5-7360U)8 GB01:420:129.22018-06-29❌
Mac Mini,
Mid-2011, 128GB SSD
2.3 GHz i5 (I5-2415M)8 GB02:040:209.22018-07-04✔️
Mac Mini,
Mid-2011, 128GB SSD
2.3 GHz i5 (I5-2415M)8 GB03:120:209.22018-07-04❌
⌨️Custom PC
Early 2018
i7-8700K 4.70+ GHz32 GB0:190:072018-03-11 (commit)✔️
⌨️Custom PC
Early 2016
i7-6700k 4.5 GHz32 GB0:230:079.4.12018-05-19 (commit)✔️
💻MacBook Pro
Retina, 13", Mid 2018
2.7 GHz i7-8559U16 GB0:270:099.4.12018-05-19 (commit)✔️
💻MacBook Pro
Retina, 15", 2018
2.9 GHz i932 GB0:300:042018-05-19 (commit)✔️
💻MacBook Pro
Retina, 15", Mid 2018
2.9 GHz i932 GB0:320:042018-05-19 (commit)✔️
⌨️Custom PC
Early 2018
i7-7700k 4.5 GHz16 GB0:350:052018-03-10✔️
Mac Pro
Flash Storage, Late 2013
3.7 GHz 4-Core Xeon E532 GB0:350:119.4.12018-06-20 (commit)✔️
⌨️Custom PC
Early 2018
i7-8700K 4.70+ GHz32 GB0:360:072018-02-19 (commit)❌
⌨️Custom PC
Late 2015
i7-4790k 4.0 GHz32 GB0:400:072018-02-22 (commit)❌
🖥iMac Pro
10 Core, Late 2017
3 GHz Intel Xeon W64 GB0:410:072017-12-28❌
💻MacBook Pro
Retina, 15", Mid 2018
2.2 GHz i732 GB0:420:092018-05-19 (commit)✔️
🖥iMac Pro
18 Core, Late 2017
2.3 GHz Intel Xeon W128 GB0:470:072018-03-07 (commit)❌
⌨️Custom PC
Early 2018
i7-7700k 4.5 GHz16 GB0:480:072018-03-10❌
🖥iMac 27"
5K 1TB SSD, Mid 2017
4,2 GHz i740 GB0:490:082018-01-18❌
💻MacBook Pro
Retina, 15", 2017
2.9 GHz i716 GB0:490:162017-10-09✔️
💻MacBook Pro
Retina, 15", 2017
2.9 GHz i716 GB0:500:152017-10-09❌
💻MacBook Pro
Retina, 15", 2015
2.5 GHz i716 GB0:510:099.22018-03-02 (commit)✔️
🖥MacPro Late 20132.7 GHz 12core Intel Xeon E564 GB0:540:102018-03-07 (commit)❌
🖥iMac 27"
256GB SSD, Late 2013
3.2 GHz i524 GB0:560:109.22018-03-02 (commit)✔️
💻MacBook Pro
Retina, 15", 2016
2.9 GHz i716 GB1:040:099.4.12018-07-18 (commit)✔️
💻MacBook Pro
Retina, 15", Mid 2012
2.6 GHz i7-3720QM16 GB1:040:139.4.12018-05-19 (commit)✔️
💻MacBook Pro
Retina, 15", 2016
2.9 GHz i716 GB1:060:109.4.12018-07-18 (commit)❌
💻MacBook Pro
Retina, 15", Late 2013
2.6 GHz i716 GB1:090:122018-02-28✔️
💻MacBook Pro
Retina, 13", Early 2015
2.7 GHz i58 GB1:120:182018-05-19 (commit)✔️
Mac Pro
Flash Storage, Late 2013
3.7 GHz 4-Core Xeon E532 GB1:150:109.4.12018-06-20 (commit)❌
💻MacBook Pro
Retina, 15", 2015
2.8 GHz i716 GB1:170:122018-01-02❌
💻MacBook Pro
Retina, 15", 2015
2.5 GHz i716 GB1:200:099.22018-03-02 (commit)❌
🖥iMac 27"
256GB SSD, Late 2013
3.2 GHz i524 GB1:270:109.22018-03-02 (commit)❌
Mac Mini
Mid 2012, 512 SSD
2.3 GHz Quad-Core i716 GB1:320:182017-10-20❌
💻MacBook Pro
Retina, 15", 2017
2.8 GHz i716 GB1:500:14❌
⌨️Custom Laptop
Mid 2018
i5-8250u 3.4 GHz16 GB1:580:109.32018-05-11❌
🖥iMac 27"
120GB SSD, Mid 2010
2.93 GHz i78 GB2:050:169.32018-03-21❌
💻MacBook Pro
Retina, 13", Early 2015
2.7 GHz i58 GB2:250:312018-05-19 (commit)❌
💻MacBook
Retina, 15", Mid 2012
2.6 GHz i78 GB2:260:23❌
💻MacBook Pro
Retina, 13", 2014
2.6 GHz i58 GB2:300:232018-01-04❌
💻MacBook Pro
13", Mid 2012
2.9 GHz i78 GB2:300:23❌

Xcode 8

🖥Computer ModelCPURAMFresh Build TimeIncremental Build TimeDate
🖥iMac 5K
512GB Flash, 27", Late 2015
4.0 GHz i732 GB0:280:06
Mac Pro
Flash Storage, Late 2013
3.5 GHz 6-Core Xeon E532 GB0:300:05
💻MacBook Pro
Retina, 15", Mid 2015
2.8 GHz i716 GB0:390:07
💻MacBook Pro
Retina, 15", Mid 2015
2.5 GHz i716 GB0:420:09
💻MacBook Pro
Retina, 15", Mid 2012
2.3 GHz i716 GB0:460:08
💻MacBook Pro
Retina, 15", Early 2013
2.4 GHz i78 GB0:470:10
Mac Mini
Mid 2012, 512 SSD
2.3GHz Quad-Core i716GB0:500:09
💻MacBook Pro
Retina, 15", Mid 2014
2.2 GHz i716 GB0:510:07
💻MacBook Pro
Retina, 15", Late 2013
2.3 GHz i716 GB0:530:09
🖥iMac
HDD 1 TB, 27", Late 2012
3.4 GHz i78 GB0:540:12
💻MacBook Pro
Touch Bar, 15", Late 2016
2.9 GHz i716 GB0:540:17
💻MacBook Pro
15", Early 2011
2.0 GHz i78 GB1:000:13
💻MacBook Pro
15" Early 2011, SSD
2.0 GHz i78 GB1:010:10
💻MacBook Pro
Touch Bar, 15", Late 2016
2.9 GHz i716 GB1:040:26
💻MacBook Pro
13", Early 2015, 1TB SSD
3.1 Ghz i716 GB1:250:09
💻MacBook Pro
Retina, 13", Early 2015
2.7 GHz i58 GB1:350:11
💻MacBook
Retina, 12", Mid 2017
1.4 GHz i716 GB1:490:16
💻MacBook Pro
13", Mid 2012 256 SSD
2.5 GHz i58 GB2:080:19
💻MacBook Air
13", Mid 2012, 512 SSD
2 Ghz i78 GB2:100:11
💻MacBook
Retina, 12", Early 2016
1.2 GHz m58 GB2:100:12
💻MacBook Pro
13", Late 2013 256 SSD
2.4 GHz i58 GB2:170:23
💻MacBook
Retina, 12", Early 2015
1.2 GHz M8 GB2:280:12
💻MacBook Pro
13", Early 2011, 512 SSD
2.7 Ghz i78 GB2:300:16
💻MacBook Air
13", Mid 2013, 128 SSD
1.3 Ghz i54 GB2:580:24
💻MacBook
Retina, 12", Early 2015
1.1 GHz M8 GB3:000:12
💻MacBook Pro
13", Mid 2010 512 SSD
2.4 GHz Intel Core 2 Duo8 GB3:010:24
🖥iMac
HDD 500 GB, 21.5", Mid 2010
3.06 GHz i312 GB3:590:14
🖥iMac
HDD 1 TB, 21.5", Late 2012
2.7 GHz i58 GB4:150:33

Specifications

For the test, I decided to use an app that I actually work on: eidolon. Unlike most iOS apps, the project is stable and not under active development, so it's a prime candidate for accurate-ish benchmarking.

For "fresh" builds, I cleaned the build folder (⌘⇧K) repeatedly until it worked with no permissions problems. Then I sat and waited for Xcode to index the project. I also made sure the simulator (iPad Air 2) was closed, so these times include booting the simulator and launching the app. Each version of Xcode above should use the latest iOS version that it ships with. Then I hit ⌘R and start a timer, only ending it when the app had fully launched.

"Incremental" builds represent a more common use case: changing one file and recompiling with the simulator already running. I added print("hello!") to application(: didFinishLaunchingWithOptions:) and hit ⌘R, timing the time it took for the app to launch.

I repeated each test a few times and took their average times.

Contributing

It would be super-cool if we could perform the above tests on a variety of machines and consolidate the results here. Below are the instructions to download the code (compatible with Apple Silicon thanks to @pawelurb), and send a pull request adding your own results. I'd super-appreciate it! 🙇

This repository is deprecated, but the results will stay around for posterity. See below for more.

git clone -b apple-silicon-compatibility https://github.com/artsy/eidolon.git
cd eidolon
bundle install
bundle exec fastlane oss

Please note that this project is released with a Contributor Code of Conduct. By participating in this project, you agree to abide by its terms.

Repo Status

This repository was created in 2015 when I worked at Artsy. The main project I worked on at the time (Eidolon) was open source, making it an ideal test case for measuring Xcode compile times of real-world apps. However, I stopped working at Artsy in 2021 and Artsy is no longer maintaining Eidolon for compatibility with the latest versions of Swift, Xcode, CocoaPods, and open source dependencies.

I could continue maintaining the repo for Artsy, since Eidolon remains open source, but honestly, keeping this Xcode benchmarking repo maintained is a lot of work, and a better repository exists.

So at the end of 2021, I'm deprecating this repository. It was a hell of a ride. I'm grateful to Artsy for the opportunity to leverage their code for the good of the iOS developer community. And I'm most grateful to dozens of contributors who made this a valuable resource. Thank you, everyone.

License

This work is licensed under a Creative Commons Attribution 4.0 International License.

Project health

Overall

2.9/10

Maintained

0/10

Code review

6/10
OpenSSF Scorecard

Significant stargazers

JP Simard

2,004 followers · starred Nov 2016

Brentley Jones

213 followers · starred Sep 2016

Alex Lorenz

54 followers · starred Jan 2016

Kim de Vos

52 followers · starred Dec 2017