Skip to content
This repository has been archived by the owner on Jan 3, 2022. It is now read-only.

want to see the new arm mac slicon xcode benchmark peformance #131

Closed
gakaki opened this issue Jul 8, 2020 · 3 comments · Fixed by #135
Closed

want to see the new arm mac slicon xcode benchmark peformance #131

gakaki opened this issue Jul 8, 2020 · 3 comments · Fixed by #135

Comments

@gakaki
Copy link

gakaki commented Jul 8, 2020

i guess can run in 35 seconds like the 9900k ?

@Linslav
Copy link

Linslav commented Nov 10, 2020

Yep, let's see that M1 perform. Would love to see the difference between MacBook Pro M1 and MacBook Air M1.

Edit:
We have some promising results from Dave Lee
https://youtu.be/XQ6vX6nmboU?t=187

Twitter thread by Paul Hudson, also very positive:
https://twitter.com/twostraws/status/1328700910546132993

@pawelurb
Copy link

Unfortunately, eidolon is a project that is no longer under active development but it still can be built with no issues on any Intel machine running Xcode 12.2. It also uses CocoaPods for dependency management, which doesn't seem to be fully compatible with M1 macs yet. Luckily, installing project dependencies via CocoaPods is not an issue under Apple Silicon as long as you're running your Terminal using Rosetta.

However, the problem with building eidolon on M1 lies in the use of third party frameworks. To be precise two of the dependencies linked to the projects are having issues building on Apple Silicon: HockeySDK-iOS and cardflight-v4-ios. Since both of these repositories take advantage of closed-source frameworks it is not possible to recompile them for Apple Silicon unless the maintainer decides to do so  - and due to deprecation of HockeyApp for App Center it is rather not going to happen at least for HockeySDK.

My approach

Since eidolon in its original form doesn't build on Apple Silicon I decided to investigate how these dependencies are used inside the app. And since HockeyApp was used solely for analytics with CartFlight SDK being used only in CartHandler.swift I decided to fork the project and remove these dependencies to make the project run. Some of the actual models were replaced with dummy ones and you can find the working fork on my GitHub profile.

Having made these changes to the project structure I think my clean/incremental build times should rather not be compared directly with times in the xcode-hardware-performance repository and that's the reason why I'm not submitting a pull request (at least for now). But having in mind that changes made to the project are overall pretty minor I assumed build times between original and forked version of eidolon will be noticeable but not significant.

Therefore, I decided to measure the M1 performance by:

  • Measuring the clean/incremental build time of original version of Eidolon running under MacBook Pro 13" (Early 2015, i5 2.7GHz/16 GB RAM)
  • Measuring the clean/incremental build time of forked version of Eidolon running under MacBook Pro 13" (Early 2015, i5 2.7GHz/16 GB RAM)

And finally:

  • Measuring the clean/incremental build time of forked version of Eidolon running under Mac Mini (Late 2020, Apple M1/16 GB RAM)

The numbers

🖥 Computer Model CPU RAM Fresh Build Time Incremental Build Time Xcode Version Date & Commit Hash Fork
🖥 MacBook Pro 13" (Early 2015) i5-5257U (2.7 GHz) 16 GB 1:48 0:17 12.2 2020-11-20 (commit)
🖥 MacBook Pro 13" (Early 2015) i5-5257U (2.7 GHz) 16 GB 1:32,6 0:15 12.2 2020-11-20 (commit) ✔️
🖥 Mac Mini (Late 2020) Apple M1 16 GB 0:19,7 0:04 12.2 2020-11-20 (commit) ✔️

TL;DR

Since eidolon doesn't build on Apple Silicon I decided to fork it and remove its dependencies that are currently failing to build. In the table above you can compare results of the original project and the fork measured on the Intel Mac with the results measured on the M1 Mac Mini running a forked version of the project. The changelog between the original project and the fork can be found here.

@michael-mckenna
Copy link
Contributor

@pawelurb nice!!!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants