Skip to content

Runtime & CLR

What happens beneath your C# code. Build system, garbage collection (split into fundamentals + tuning because the senior bar demands it), JIT and PGO, NativeAOT and trimming, source generators, allocations and pooling, and assembly loading.

Topics (canonical order)

Why this order

MSBuild comes first because everything later (multi-targeting, AOT publish, RIDs, central package management) is configured there. GC is split because fundamentals + diagnosing are two different mental modes. JIT/PGO follows GC because both are runtime engines that interact during execution. NativeAOT comes after both because it inverts JIT assumptions and has trimming implications. Source generators precede pooling because some of the perf wins (logging source-gen, JSON source-gen) eliminate allocations seen in pooling.

Cross-references