Migrating .NET MAUI from Mono and Tuning Mobile Performance
With CoreCLR now the default runtime for .NET MAUI on Android, iOS, and Mac Catalyst, mobile apps gain Tiered Compilation, ReadyToRun, and Profile-Guided Optimization — but the transition introduces real-world challenges that need addressing.
What you’ll learn
- Why CoreCLR replaces Mono for .NET MAUI and what that means for startup times, GC behaviour, and diagnostics
- Setting up a dual-runtime targeting strategy — Mono for Debug (inner-loop debugging), CoreCLR for Release (production performance)
- Configuring CoreCLR’s Garbage Collector for mobile hardware using
runtimeconfig.template.json— Workstation GC,RetainVM, andHeapHardLimitPercent - Using
dotnet-traceanddotnet-countersdirectly on physical Android devices over USB for desktop-grade profiling - Understanding the key differences between Mono and CoreCLR compilation engines, GC architectures, and diagnostic tooling