Results from running Xcode on a non-trivial open source project using various Macs
License: Other
xcode-hardware-performance's Introduction
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 9
๐ฅ
Computer Model
CPU
RAM
Fresh Build Time
Incremental Build Time
Date
New Build System?
๐ป
MacBook Pro Retina, 15", 2017
2.8 GHz i7
16 GB
1:50
0:14
โ
๐ป
MacBook Retina, 15", Mid 2012
2.6 GHz i7
8 GB
2:26
0:23
โ
Xcode 8
๐ฅ
Computer Model
CPU
RAM
Fresh Build Time
Incremental Build Time
Date
๐ฅ
iMac 5K 512GB Flash, 27", Late 2015
4.0Ghz i7
32 GB
0:28
0:06
Mac Pro Flash Storage, Late 2013
3.5 GHz 6-Core Xeon E5
32 GB
0:30
0:05
๐ป
MacBook Pro Retina, 15", Mid 2015
2.8 GHz i7
16 GB
0:39
0:07
๐ป
MacBook Pro Retina, 15", Mid 2015
2.5 GHz i7
16 GB
0:42
0:09
๐ป
MacBook Pro Retina, 15", Mid 2012
2.3 GHz i7
16 GB
0:46
0:08
๐ป
MacBook Pro Retina, 15", Early 2013
2.4 GHz i7
8 GB
0:47
0:10
Mac Mini Mid 2012, 512 SSD
2.3GHz Quad-Core i7
16GB
0:50
0:09
๐ป
MacBook Pro Retina, 15", Mid 2014
2.2 GHz i7
16 GB
0:51
0:07
๐ป
MacBook Pro Retina, 15", Late 2013
2.3 GHz i7
16 GB
0:53
0:09
๐ฅ
iMac HDD 1 TB, 27", Late 2012
3.4 GHz i7
8 GB
0:54
0:12
๐ป
MacBook Pro Touch Bar, 15", Late 2016
2.9 GHz i7
16 GB
0:54
0:17
๐ป
MacBook Pro 15", Early 2011
2.0 GHz i7
8 GB
1:00
0:13
๐ป
MacBook Pro 15" Early 2011, SSD
2.0 GHz i7
8 GB
1:01
0:10
๐ป
MacBook Pro Touch Bar, 15", Late 2016
2.9 GHz i7
16 GB
1:04
0:26
๐ป
MacBook Pro 13", Early 2015, 1TB SSD
3.1 Ghz i7
16 GB
1:25
0:09
๐ป
MacBook Pro Retina, 13", Early 2015
2.7 GHz i5
8 GB
1:35
0:11
๐ป
MacBook Retina, 12", Mid 2017
1.4 GHz i7
16 GB
1:49
0:16
๐ป
MacBook Pro 13โ, Mid 2012 256 SSD
2.5 GHz i5
8 GB
2:08
0:19
๐ป
MacBook Air 13", Mid 2012, 512 SSD
2 Ghz i7
8 GB
2:10
0:11
๐ป
MacBook Retina, 12", Early 2016
1.2 GHz m5
8 GB
2:10
0:12
๐ป
MacBook Pro 13โ, Late 2013 256 SSD
2.4 GHz i5
8 GB
2:17
0:23
๐ป
MacBook Retina, 12", Early 2015
1.2 GHz M
8 GB
2:28
0:12
๐ป
MacBook Retina, 12", Early 2015
1.1 GHz M
8 GB
3:00
0:12
๐ป
MacBook Pro 13", Early 2011, 512 SSD
2.7 Ghz i7
8 GB
2:30
0:16
๐ป
MacBook Air 13", Mid 2013, 128 SSD
1.3 Ghz i5
4 GB
2:58
0:24
๐ป
MacBook Pro 13โ, Mid 2010 512 SSD
2.4 GHz Intel Core 2 Duo
8 GB
3:01
0:24
๐ฅ
iMac HDD 500 GB, 21.5", Mid 2010
3.06 GHz i3
12 GB
3:59
0:14
๐ฅ
iMac HDD 1 TB, 21.5", Late 2012
2.7 GHz i5
8 GB
4:15
0:33
Specifications
For the test, I decided to use an app that I actually work on: eidolon.
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 was closed, so these times include booting the simulator and launching the app. 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. You can follow the instructions to download the code and the project dependencies, and send a pull request adding your own results. I'd super-appreciate it! ๐
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](/Code of Conduct.md).