Part of #10788
Track build-time optimization opportunities for the trimmable type map generation pipeline (GenerateTrimmableTypeMap task).
Current performance (PR #10924 benchmarks, MacBook M1)
| Phase | Avg | P50 | P95 |
|---|
| Scan (8870 types) | 235ms | 224ms | 319ms |
| Emit (typemap assemblies) | 86ms | 75ms | 181ms |
| JCW (315 Java files) | 766ms | 409ms | 3167ms |
| Total cold | 1088ms | 702ms | |
| Total incremental (scan only) | 221ms | 215ms | |
Optimization opportunities
Part of #10788
Track build-time optimization opportunities for the trimmable type map generation pipeline (
GenerateTrimmableTypeMaptask).Current performance (PR #10924 benchmarks, MacBook M1)
Optimization opportunities
Inputs/Outputs1-1 mapping so MSBuild only passes changed assemblies to the task, eliminating the stamp file (suggested by @jonathanpeppers in [TrimmableTypeMap] Add GenerateTrimmableTypeMap MSBuild task and targets #10924 (comment))Scanoverload could skip unchanged assembliesSystem.Xml.Linq(full DOM tree); explore streaming withXmlReader/XmlWriterto reduce allocations (suggested by @jonathanpeppers in [TrimmableTypeMap] Assembly-level manifest attribute scanning #11035)