diff --git a/docs/BENCHMARKS.md b/docs/BENCHMARKS.md index f5b627e..69cf6a0 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 #234](https://github.com/schivei/GenDI/actions/runs/33534619085) on 2026-09-01 16:58 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) | 2.700 μs | 7.42 KB | +| GenDI: constructor injection (generated) | 11.064 μs | 9.98 KB | +| GenDI: property injection (generated) | 11.186 μs | 9.98 KB | +| GenDI: with decorator, property injection (generated) | 14.204 μs | 14.26 KB | +| Reflection registration (no GenDI, assembly scan) | 48.241 μs | 23.89 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 **+309.8%** versus manual registration. +- GenDI property injection is **+314.3%** versus manual registration. +- Reflection scanning remains the outlier at **~17.9x 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/tests/GenDI.Analyzers.Tests/GenDI.Analyzers.Tests.csproj b/tests/GenDI.Analyzers.Tests/GenDI.Analyzers.Tests.csproj index 209eed5..fba87f5 100644 --- a/tests/GenDI.Analyzers.Tests/GenDI.Analyzers.Tests.csproj +++ b/tests/GenDI.Analyzers.Tests/GenDI.Analyzers.Tests.csproj @@ -22,7 +22,7 @@ - + - + diff --git a/tests/GenDI.Phase3.Validation.Tests/GenDI.Phase3.Validation.Tests.csproj b/tests/GenDI.Phase3.Validation.Tests/GenDI.Phase3.Validation.Tests.csproj index f5c5c65..f069b47 100644 --- a/tests/GenDI.Phase3.Validation.Tests/GenDI.Phase3.Validation.Tests.csproj +++ b/tests/GenDI.Phase3.Validation.Tests/GenDI.Phase3.Validation.Tests.csproj @@ -15,7 +15,7 @@ - + - + - + diff --git a/tests/GenDI.SourceGenerator.CoverageEnabled.Tests/GenDI.SourceGenerator.CoverageEnabled.Tests.csproj b/tests/GenDI.SourceGenerator.CoverageEnabled.Tests/GenDI.SourceGenerator.CoverageEnabled.Tests.csproj index 28e10be..c980ca3 100644 --- a/tests/GenDI.SourceGenerator.CoverageEnabled.Tests/GenDI.SourceGenerator.CoverageEnabled.Tests.csproj +++ b/tests/GenDI.SourceGenerator.CoverageEnabled.Tests/GenDI.SourceGenerator.CoverageEnabled.Tests.csproj @@ -23,7 +23,7 @@ /> - + diff --git a/tests/GenDI.SourceGenerator.NoCoverageAttribute.Tests/GenDI.SourceGenerator.NoCoverageAttribute.Tests.csproj b/tests/GenDI.SourceGenerator.NoCoverageAttribute.Tests/GenDI.SourceGenerator.NoCoverageAttribute.Tests.csproj index 28e10be..c980ca3 100644 --- a/tests/GenDI.SourceGenerator.NoCoverageAttribute.Tests/GenDI.SourceGenerator.NoCoverageAttribute.Tests.csproj +++ b/tests/GenDI.SourceGenerator.NoCoverageAttribute.Tests/GenDI.SourceGenerator.NoCoverageAttribute.Tests.csproj @@ -23,7 +23,7 @@ /> - + diff --git a/tests/GenDI.Testing.Example.Tests/GenDI.Testing.Example.Tests.csproj b/tests/GenDI.Testing.Example.Tests/GenDI.Testing.Example.Tests.csproj index 4556be4..99f192b 100644 --- a/tests/GenDI.Testing.Example.Tests/GenDI.Testing.Example.Tests.csproj +++ b/tests/GenDI.Testing.Example.Tests/GenDI.Testing.Example.Tests.csproj @@ -16,7 +16,7 @@ - + diff --git a/tests/GenDI.Testing.Tests/GenDI.Testing.Tests.csproj b/tests/GenDI.Testing.Tests/GenDI.Testing.Tests.csproj index 29edbac..a888f8f 100644 --- a/tests/GenDI.Testing.Tests/GenDI.Testing.Tests.csproj +++ b/tests/GenDI.Testing.Tests/GenDI.Testing.Tests.csproj @@ -14,7 +14,7 @@ - + -_Updated by [CI run #225](https://github.com/schivei/GenDI/actions/runs/29263183905) on 2026-07-13 15:43 UTC_ +_Updated by [CI run #234](https://github.com/schivei/GenDI/actions/runs/33534619085) on 2026-09-01 16:58 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) | 2.700 μs | 7.42 KB | +| GenDI: constructor injection (generated) | 11.064 μs | 9.98 KB | +| GenDI: property injection (generated) | 11.186 μs | 9.98 KB | +| GenDI: with decorator, property injection (generated) | 14.204 μs | 14.26 KB | +| Reflection registration (no GenDI, assembly scan) | 48.241 μs | 23.89 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 **+309.8%** versus manual registration. +- GenDI property injection is **+314.3%** versus manual registration. +- Reflection scanning remains the outlier at **~17.9x 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.