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)