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

[dotnet] Disable dedup optimization if we're interpreting every assembly. #21661

Merged
merged 1 commit into from
Dec 30, 2024

Conversation

rolfbjarne
Copy link
Member

@rolfbjarne rolfbjarne commented Nov 19, 2024

This speeds up the inner dev loop, because:

  • The dedup assembly must be AOT-compiled for arm64
  • arm64 is the default target architecture on more and more devices/macs
  • AOT-compilation is slow

So disabling the dedup optimization in this case makes the build faster, because we don't have to AOT-compile something that doesn't exist.

Build times of a new MAUI app (dotnet new maui):

- with dedup without dedup 
Simulator (Debug) 18 s  8 s
 Device (Debug) 32 s  22 s
 Device (Release, interpreter) 43 s  18 s
 Device (Release, fullaot) 1m20 s  1m40 s

App size:

- with dedup without dedup 
 Device (Debug) 126 MB  88 MB  
 Device (Release, interpreter) 19 MB  14 MB  
 Device (Release, fullaot) 42 MB  69 MB  

Note that disabling dedup when using the interpreter makes the app smaller as well.

…bly.

This speeds up the build.

TODO:

* Better numbers.
@vs-mobiletools-engineering-service2
Copy link
Collaborator

✅ API diff for current PR / commit

.NET (No breaking changes)

✅ API diff vs stable

.NET (No breaking changes)

ℹ️ Generator diff

Generator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes)

Pipeline on Agent
Hash: f723263787ba850b29e4b49705f471ce43e34978 [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

💻 [CI Build] Windows Integration Tests passed 💻

All Windows Integration Tests passed.

Pipeline on Agent
Hash: f723263787ba850b29e4b49705f471ce43e34978 [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

💻 [CI Build] Tests on macOS M1 - Mac Monterey (12) passed 💻

All tests on macOS M1 - Mac Monterey (12) passed.

Pipeline on Agent
Hash: f723263787ba850b29e4b49705f471ce43e34978 [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

💻 [CI Build] Tests on macOS X64 - Mac Sonoma (14) passed 💻

All tests on macOS X64 - Mac Sonoma (14) passed.

Pipeline on Agent
Hash: f723263787ba850b29e4b49705f471ce43e34978 [PR build]

@vs-mobiletools-engineering-service2
Copy link
Collaborator

💻 [CI Build] Tests on macOS M1 - Mac Ventura (13) passed 💻

All tests on macOS M1 - Mac Ventura (13) passed.

Pipeline on Agent
Hash: f723263787ba850b29e4b49705f471ce43e34978 [PR build]

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2
Copy link
Collaborator

🚀 [CI Build] Test results 🚀

Test results

✅ All tests passed on VSTS: test results.

🎉 All 101 tests passed 🎉

Tests counts

✅ cecil: All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (iOS): All 1 tests passed. [attempt 2] Html Report (VSDrops) Download
✅ dotnettests (MacCatalyst): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (macOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (Multiple platforms): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (tvOS): All 1 tests passed. Html Report (VSDrops) Download
✅ framework: All 2 tests passed. Html Report (VSDrops) Download
✅ fsharp: All 4 tests passed. Html Report (VSDrops) Download
✅ generator: All 3 tests passed. Html Report (VSDrops) Download
✅ interdependent-binding-projects: All 4 tests passed. Html Report (VSDrops) Download
✅ introspection: All 4 tests passed. Html Report (VSDrops) Download
✅ linker: All 40 tests passed. Html Report (VSDrops) Download
✅ monotouch (iOS): All 7 tests passed. Html Report (VSDrops) Download
✅ monotouch (MacCatalyst): All 8 tests passed. Html Report (VSDrops) Download
✅ monotouch (macOS): All 9 tests passed. Html Report (VSDrops) Download
✅ monotouch (tvOS): All 7 tests passed. Html Report (VSDrops) Download
✅ msbuild: All 2 tests passed. Html Report (VSDrops) Download
✅ xcframework: All 4 tests passed. Html Report (VSDrops) Download
✅ xtro: All 1 tests passed. Html Report (VSDrops) Download

Pipeline on Agent
Hash: f723263787ba850b29e4b49705f471ce43e34978 [PR build]

@kotlarmilos kotlarmilos self-requested a review December 30, 2024 11:18
@rolfbjarne rolfbjarne added the notes-mention Deserves a mention in release notes label Dec 30, 2024
@rolfbjarne rolfbjarne merged commit 42d14e2 into main Dec 30, 2024
17 checks passed
@rolfbjarne rolfbjarne deleted the dev/rolf/disable-dedup-if-interpreting-everything branch December 30, 2024 14:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
notes-mention Deserves a mention in release notes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants