Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make commands for project generation and CLI build #1723

Merged
merged 1 commit into from
Nov 24, 2023

Conversation

rinat-enikeev
Copy link
Contributor

@rinat-enikeev rinat-enikeev commented Nov 24, 2023

Implements Makefile for project generation with SPM and Frameworks.

Steps to gather statistics

make xcodeproj_with_frameworks
make build_with_frameworks

make xcodeproj_with_spm
make build_with_spm

make build_with_pods

Build statistics for warmed cache, build time in seconds:

Pods SPM Frameworks
CLI 27 70 84
Xcode 15.6 21.4 28
Second 7.5 0.3 0.3
Incremental 9.3 1.7 1.2

Where CLI is xcodebuild, Xcode is build from Xcode, Second is second sequential build from Xcode, Incremental is build after adding print statement inside module.

Implements Makefile for project generation with SPM and Frameworks
Copy link

sonarcloud bot commented Nov 24, 2023

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
0.0% 0.0% Duplication

@rinat-enikeev rinat-enikeev marked this pull request as ready for review November 24, 2023 19:01
@rinat-enikeev
Copy link
Contributor Author

On my machine:

make build_with_spm with deleted Derived Data took 493 seconds [66.7 MB app / 357,9 MB folder].
make build_with_frameworks with deleted Derived Data took 484 seconds [76,7 MB app / 431,9 folder].

make build_with_pods with deleted Derived Data after pod install took 128 seconds [79,9 MB app / 437,6 MB folder]

@rinat-enikeev
Copy link
Contributor Author

IPA:

  • SPM 30,5 MB
  • Frameworks 35.3 MB
  • Pods 37.3 MB

@rinat-enikeev
Copy link
Contributor Author

Screenshot 2023-11-24 at 21 55 20

@rinat-enikeev
Copy link
Contributor Author

Note: Pods IPA is bigger because of extensions.

Screenshot 2023-11-24 at 21 57 43

@priyonto
Copy link
Collaborator

@rinat-enikeev Usually I would prefer to go with SPM but looking at the build time with pods makes me curious how its significantly lower than SPM. Do you have an M1 machine or Intel?

@rinat-enikeev
Copy link
Contributor Author

@rinat-enikeev Usually I would prefer to go with SPM but looking at the build time with pods makes me curious how its significantly lower than SPM. Do you have an M1 machine or Intel?

M1 Max. SPM/frameworks Incremental build are better than Pods.

Fresh builds are downloading all packages, while Pods doesn't count pod install download operation.

@rinat-enikeev rinat-enikeev merged commit 77baf7f into dev Nov 24, 2023
2 checks passed
@rinat-enikeev rinat-enikeev deleted the feature/makefile_for_build branch November 24, 2023 21:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants