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.
๐ฅ
Computer Model
CPU
RAM
Fresh Build Time
Incremental Build Time
๐ฅ
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 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 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).