BoDi
BoDi copied to clipboard
improve performance / allocations for registrations resolve
PR 3 extracted out of #40
Focused on the registration.Resolve. Main change:
- avoid closure delegate allocation and copy pasted code
Performance measurements:
From ResolveFromType
| Method | Mean | Error | StdDev | Min | Max | Median | Rank | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Current | 187.1 ns | 0.87 ns | 0.77 ns | 185.3 ns | 188.5 ns | 187.2 ns | 1 | 0.0305 | - | - | 144 B |
| Master | 234.5 ns | 2.31 ns | 2.05 ns | 230.7 ns | 237.7 ns | 234.2 ns | 1 | 0.0730 | - | - | 344 B |
From ResolveAllFromType
| Method | Mean | Error | StdDev | Min | Max | Median | Rank | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Current | 568.3 ns | 9.63 ns | 9.01 ns | 555.2 ns | 589.2 ns | 568.0 ns | 1 | 0.1068 | - | - | 504 B |
| Master | 606.3 ns | 9.68 ns | 9.05 ns | 595.0 ns | 621.9 ns | 606.5 ns | 1 | 0.1488 | - | - | 704 B |
From ResolveFromFactory
| Method | Mean | Error | StdDev | Min | Max | Median | Rank | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Current | 213.5 ns | 1.23 ns | 1.15 ns | 211.7 ns | 215.6 ns | 213.6 ns | 1 | 0.0372 | - | - | 176 B |
| Master | 252.9 ns | 3.18 ns | 2.97 ns | 248.1 ns | 259.4 ns | 253.5 ns | 1 | 0.0763 | - | - | 360 B |
From ResolveAllFromFactory
| Method | Mean | Error | StdDev | Min | Max | Median | Rank | Gen 0 | Gen 1 | Gen 2 | Allocated |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Current | 584.5 ns | 3.50 ns | 3.11 ns | 580.4 ns | 591.2 ns | 584.9 ns | 1 | 0.1135 | - | - | 536 B |
| Master | 633.2 ns | 5.27 ns | 4.93 ns | 626.5 ns | 641.2 ns | 633.0 ns | 1 | 0.1526 | - | - | 720 B |