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

Support AOT with CoreRT #4968

Closed
trampster opened this issue Jul 28, 2020 · 5 comments
Closed

Support AOT with CoreRT #4968

trampster opened this issue Jul 28, 2020 · 5 comments
Assignees
Labels
Area: Mono Runtime Mono-related issues: BCL bugs, AOT issues, etc. enhancement Proposed change to current functionality.

Comments

@trampster
Copy link

trampster commented Jul 28, 2020

CoreRT signicantly outperforms Mono AOT in key metrics, most importantly in startup time and deployment size. See https://medium.com/@MStrehovsky/fight-the-global-warming-compile-your-c-apps-ahead-of-time-9997e953645b

When I enabled Mono AOT on my Xamarin.Android project it increased my deployment size instead of decreasing it and although it did improve startup times, it still took almost 2 seconds to start in an app with no Reflection.Emit and very little code in the startup path.

My App is a Push To Talk app that needs to start very quickly after a radio calls starts in order to not miss communications. Mono AOT is simply not upto the task.

It would be nice to have CoreRT as a AOT option on Android.

@brendanzagaeski
Copy link
Contributor

Cross-referencing note for the Xamarin.Android team

The following note from the current CoreRT repository README looks like it might play a role in the overall story for this item:

This is an experimental project. We have no plans to productize it in its current form. More details in CoreRT future plans.

@trampster
Copy link
Author

Mono AOT on android was marked as experimental for years, and was still available as an option.

CoreRT is used commercially, Carrion (a game available on steam) uses it. We are not asking for it to be marked as commercially supported, just to be available as an alternative, in situations where Mono AOT doesn't suit.

@charlesroddie
Copy link

Xamarin.Android with MonoVM+CoreFX (.Net 6) should be testable I think end of this year. I would have thought that would the natural stepping stone to CoreRT/CoreCLR support, but am no runtime expert.

@queequac
Copy link

queequac commented Sep 2, 2020

Just wanted to refer to @MichalStrehovsky's tweet here, where he mentions several Xamarin.Android specific hooks into Mono's garbage collector.
So might not be that easy to bring CoreRT to Xamarin.Android - but I would also welcome that feature, since Xamarin's current AOT options do not really solve slow start-up time (which is the most critical issue, but not the only one getting solved by CoreRT-like AOT).

@jpobst jpobst added Area: Mono Runtime Mono-related issues: BCL bugs, AOT issues, etc. and removed Area: Mono runtime or AOT Compiler labels Sep 6, 2022
@jpobst
Copy link
Contributor

jpobst commented Sep 13, 2022

CoreRT is (was?) an option for the CoreCLR. At this time, there are no plans to migrate Xamarin to CoreCLR instead of MonoVM.

The Mono team continues to invest in both their AOT and support for LLVM AOT, and has seen significant improvement over the past few years.

@jpobst jpobst closed this as not planned Won't fix, can't repro, duplicate, stale Sep 13, 2022
@ghost ghost locked as resolved and limited conversation to collaborators Oct 14, 2022
@jpobst jpobst added the enhancement Proposed change to current functionality. label Dec 1, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Area: Mono Runtime Mono-related issues: BCL bugs, AOT issues, etc. enhancement Proposed change to current functionality.
Projects
None yet
Development

No branches or pull requests

7 participants