diff --git a/docs/BENCHMARKS.md b/docs/BENCHMARKS.md index f5b627e..b04937a 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 #236](https://github.com/schivei/GenDI/actions/runs/33535007117) on 2026-09-01 17:02 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.608 μs | 7.42 KB | +| GenDI: constructor injection (generated) | 10.609 μs | 9.98 KB | +| GenDI: property injection (generated) | 10.276 μs | 9.98 KB | +| GenDI: with decorator, property injection (generated) | 14.953 μs | 14.26 KB | +| Reflection registration (no GenDI, assembly scan) | 52.019 μ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 **+306.8%** versus manual registration. +- GenDI property injection is **+294.0%** versus manual registration. +- Reflection scanning remains the outlier at **~19.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..770c4e0 100644 --- a/tests/GenDI.Analyzers.Tests/GenDI.Analyzers.Tests.csproj +++ b/tests/GenDI.Analyzers.Tests/GenDI.Analyzers.Tests.csproj @@ -21,7 +21,7 @@ /> - + diff --git a/tests/GenDI.Integration.Tests/GenDI.Integration.Tests.csproj b/tests/GenDI.Integration.Tests/GenDI.Integration.Tests.csproj index 472e750..8000fe8 100644 --- a/tests/GenDI.Integration.Tests/GenDI.Integration.Tests.csproj +++ b/tests/GenDI.Integration.Tests/GenDI.Integration.Tests.csproj @@ -15,7 +15,7 @@ all - + 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..0945f0e 100644 --- a/tests/GenDI.Phase3.Validation.Tests/GenDI.Phase3.Validation.Tests.csproj +++ b/tests/GenDI.Phase3.Validation.Tests/GenDI.Phase3.Validation.Tests.csproj @@ -14,7 +14,7 @@ all - + diff --git a/tests/GenDI.Phase6.PlatformValidation.Tests/GenDI.Phase6.PlatformValidation.Tests.csproj b/tests/GenDI.Phase6.PlatformValidation.Tests/GenDI.Phase6.PlatformValidation.Tests.csproj index f5c5c65..0945f0e 100644 --- a/tests/GenDI.Phase6.PlatformValidation.Tests/GenDI.Phase6.PlatformValidation.Tests.csproj +++ b/tests/GenDI.Phase6.PlatformValidation.Tests/GenDI.Phase6.PlatformValidation.Tests.csproj @@ -14,7 +14,7 @@ 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..2b144ad 100644 --- a/tests/GenDI.SourceGenerator.CoverageDisabled.Tests/GenDI.SourceGenerator.CoverageDisabled.Tests.csproj +++ b/tests/GenDI.SourceGenerator.CoverageDisabled.Tests/GenDI.SourceGenerator.CoverageDisabled.Tests.csproj @@ -22,7 +22,7 @@ PrivateAssets="all" /> - + 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..2b144ad 100644 --- a/tests/GenDI.SourceGenerator.CoverageEnabled.Tests/GenDI.SourceGenerator.CoverageEnabled.Tests.csproj +++ b/tests/GenDI.SourceGenerator.CoverageEnabled.Tests/GenDI.SourceGenerator.CoverageEnabled.Tests.csproj @@ -22,7 +22,7 @@ PrivateAssets="all" /> - + 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..2b144ad 100644 --- a/tests/GenDI.SourceGenerator.NoCoverageAttribute.Tests/GenDI.SourceGenerator.NoCoverageAttribute.Tests.csproj +++ b/tests/GenDI.SourceGenerator.NoCoverageAttribute.Tests/GenDI.SourceGenerator.NoCoverageAttribute.Tests.csproj @@ -22,7 +22,7 @@ PrivateAssets="all" /> - + 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..1c98813 100644 --- a/tests/GenDI.Testing.Example.Tests/GenDI.Testing.Example.Tests.csproj +++ b/tests/GenDI.Testing.Example.Tests/GenDI.Testing.Example.Tests.csproj @@ -15,7 +15,7 @@ all - + diff --git a/tests/GenDI.Testing.Tests/GenDI.Testing.Tests.csproj b/tests/GenDI.Testing.Tests/GenDI.Testing.Tests.csproj index 29edbac..0e5feb2 100644 --- a/tests/GenDI.Testing.Tests/GenDI.Testing.Tests.csproj +++ b/tests/GenDI.Testing.Tests/GenDI.Testing.Tests.csproj @@ -13,7 +13,7 @@ all - + diff --git a/website/docs/advanced/benchmarks.md b/website/docs/advanced/benchmarks.md index 5e9c13f..ffe80a4 100644 --- a/website/docs/advanced/benchmarks.md +++ b/website/docs/advanced/benchmarks.md @@ -33,21 +33,21 @@ dotnet run -c Release --project tests/GenDI.Benchmarks/GenDI.Benchmarks.csproj - ## ⚡ Latest result 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 #236](https://github.com/schivei/GenDI/actions/runs/33535007117) on 2026-09-01 17:02 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.608 μs | 7.42 KB | +| GenDI: constructor injection (generated) | 10.609 μs | 9.98 KB | +| GenDI: property injection (generated) | 10.276 μs | 9.98 KB | +| GenDI: with decorator, property injection (generated) | 14.953 μs | 14.26 KB | +| Reflection registration (no GenDI, assembly scan) | 52.019 μ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 **+306.8%** versus manual registration. +- GenDI property injection is **+294.0%** versus manual registration. +- Reflection scanning remains the outlier at **~19.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.