diff --git a/docs/BENCHMARKS.md b/docs/BENCHMARKS.md index f5b627e..6a0e21c 100644 --- a/docs/BENCHMARKS.md +++ b/docs/BENCHMARKS.md @@ -40,21 +40,21 @@ dotnet run -c Release --project tests/GenDI.Benchmarks/GenDI.Benchmarks.csproj - ## Latest CI benchmark snapshot -_Updated by [CI run #225](https://github.com/schivei/GenDI/actions/runs/29263183905) on 2026-07-13 15:43 UTC_ +_Updated by [CI run #231](https://github.com/schivei/GenDI/actions/runs/33533719964) on 2026-09-01 16:49 UTC_ | Method | Mean | Allocated | |---|---:|---:| -| Manual registration (no GenDI) | 3.211 μs | 7.42 KB | -| GenDI: constructor injection (generated) | 11.781 μs | 9.98 KB | -| GenDI: property injection (generated) | 11.780 μs | 9.98 KB | -| GenDI: with decorator, property injection (generated) | 19.599 μs | 14.26 KB | -| Reflection registration (no GenDI, assembly scan) | 76.778 μs | 23.9 KB | +| Manual registration (no GenDI) | 3.206 μs | 7.42 KB | +| GenDI: constructor injection (generated) | 13.325 μs | 9.98 KB | +| GenDI: property injection (generated) | 13.287 μs | 9.98 KB | +| GenDI: with decorator, property injection (generated) | 19.594 μs | 14.26 KB | +| Reflection registration (no GenDI, assembly scan) | 77.926 μs | 23.9 KB | ### CI analysis -- GenDI constructor injection is **+266.9%** versus manual registration. -- GenDI property injection is **+266.9%** versus manual registration. -- Reflection scanning remains the outlier at **~23.9x slower** and **~3.2x higher allocation** than manual registration. +- GenDI constructor injection is **+315.6%** versus manual registration. +- GenDI property injection is **+314.4%** versus manual registration. +- Reflection scanning remains the outlier at **~24.3x slower** and **~3.2x higher allocation** than manual registration. - Compatibility note: this benchmark compares manual and generated registrations against a reflection scanner baseline; as documented below, reflection scanning is not suitable for trimming/NativeAOT scenarios, while manual and GenDI-generated registrations remain the supported path. diff --git a/src/GenDI.Analyzers/GenDI.Analyzers.csproj b/src/GenDI.Analyzers/GenDI.Analyzers.csproj index d3880e9..75e516e 100644 --- a/src/GenDI.Analyzers/GenDI.Analyzers.csproj +++ b/src/GenDI.Analyzers/GenDI.Analyzers.csproj @@ -14,10 +14,10 @@ - + diff --git a/src/GenDI.SourceGenerator/GenDI.SourceGenerator.csproj b/src/GenDI.SourceGenerator/GenDI.SourceGenerator.csproj index 01f4a08..e7ac727 100644 --- a/src/GenDI.SourceGenerator/GenDI.SourceGenerator.csproj +++ b/src/GenDI.SourceGenerator/GenDI.SourceGenerator.csproj @@ -16,7 +16,7 @@ - + diff --git a/tests/GenDI.Analyzers.Tests/GenDI.Analyzers.Tests.csproj b/tests/GenDI.Analyzers.Tests/GenDI.Analyzers.Tests.csproj index 209eed5..044a8f3 100644 --- a/tests/GenDI.Analyzers.Tests/GenDI.Analyzers.Tests.csproj +++ b/tests/GenDI.Analyzers.Tests/GenDI.Analyzers.Tests.csproj @@ -13,10 +13,10 @@ runtime; build; native; contentfiles; analyzers; buildtransitive all - + diff --git a/tests/GenDI.SourceGenerator.CoverageDisabled.Tests/GenDI.SourceGenerator.CoverageDisabled.Tests.csproj b/tests/GenDI.SourceGenerator.CoverageDisabled.Tests/GenDI.SourceGenerator.CoverageDisabled.Tests.csproj index 28e10be..01412b4 100644 --- a/tests/GenDI.SourceGenerator.CoverageDisabled.Tests/GenDI.SourceGenerator.CoverageDisabled.Tests.csproj +++ b/tests/GenDI.SourceGenerator.CoverageDisabled.Tests/GenDI.SourceGenerator.CoverageDisabled.Tests.csproj @@ -14,7 +14,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + -_Updated by [CI run #225](https://github.com/schivei/GenDI/actions/runs/29263183905) on 2026-07-13 15:43 UTC_ +_Updated by [CI run #231](https://github.com/schivei/GenDI/actions/runs/33533719964) on 2026-09-01 16:49 UTC_ | Method | Mean | Allocated | |---|---:|---:| -| Manual registration (no GenDI) | 3.211 μs | 7.42 KB | -| GenDI: constructor injection (generated) | 11.781 μs | 9.98 KB | -| GenDI: property injection (generated) | 11.780 μs | 9.98 KB | -| GenDI: with decorator, property injection (generated) | 19.599 μs | 14.26 KB | -| Reflection registration (no GenDI, assembly scan) | 76.778 μs | 23.9 KB | +| Manual registration (no GenDI) | 3.206 μs | 7.42 KB | +| GenDI: constructor injection (generated) | 13.325 μs | 9.98 KB | +| GenDI: property injection (generated) | 13.287 μs | 9.98 KB | +| GenDI: with decorator, property injection (generated) | 19.594 μs | 14.26 KB | +| Reflection registration (no GenDI, assembly scan) | 77.926 μs | 23.9 KB | ### CI analysis -- GenDI constructor injection is **+266.9%** versus manual registration. -- GenDI property injection is **+266.9%** versus manual registration. -- Reflection scanning remains the outlier at **~23.9x slower** and **~3.2x higher allocation** than manual registration. +- GenDI constructor injection is **+315.6%** versus manual registration. +- GenDI property injection is **+314.4%** versus manual registration. +- Reflection scanning remains the outlier at **~24.3x slower** and **~3.2x higher allocation** than manual registration. - Compatibility note: this benchmark compares manual and generated registrations against a reflection scanner baseline; as documented below, reflection scanning is not suitable for trimming/NativeAOT scenarios, while manual and GenDI-generated registrations remain the supported path.