Phase 29 of 30 · Topic 29.2

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")]`.