IL Trimming & Tree Shaking Analysis
1Concept
The IL Trimmer performs static reachability analysis across assemblies, stripping unused classes, methods, and framework libraries to produce ultra-compact binaries.
2Architecture Diagram
Full .NET Base Class Library (150MB)
│
[ IL Trimmer Static Code Analysis ] ──> Strips uncalled classes & metadata
│
Trimmed Native Binary (15-25MB Standalone!)3Code Example
C# 13 & .NET 9
using System;
public class TrimmingConceptDemo
{
public static void Main()
{
Console.WriteLine("Trimming modes in .NET 9:");
Console.WriteLine("1. TrimMode = partial (Safely trims framework only)");
Console.WriteLine("2. TrimMode = full (Aggressively trims all assemblies)");
}
}4Expected Output
Trimming modes in .NET 9: 1. TrimMode = partial (Safely trims framework only) 2. TrimMode = full (Aggressively trims all assemblies)
5Key Takeaways
- ✓Test trimmed applications thoroughly to catch reflection trimming issues.
- ✓Use `<TrimMode>full</TrimMode>` for maximum size reduction.
- ✓Third-party libraries must be marked with `[assembly: AssemblyMetadata("IsTrimmable", "True")]`.