-
Notifications
You must be signed in to change notification settings - Fork 5
V10.1.1/service update #136
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
WalkthroughVersion 10.1.1 release update adding release notes across all NuGet packages, upgrading package dependencies to latest compatible versions, migrating from .sln to .slnx solution format, and adjusting build configuration properties. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes
Possibly related PRs
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 14
🧹 Nitpick comments (14)
.nuget/Cuemon.Extensions.Data.Integrity/PackageReleaseNotes.txt (1)
1-6: Good additive 10.1.1 entry; consider trimming duplication + normalize whitespace-only lines.The 10.1.1 block matches the established format and keeps 10.1.0 intact (nice). Two small nits:
- The ALM bullet is identical to 10.1.0; if possible, call out what changed (or reference the central dependency update location) to make 10.1.1 meaningful.
- Lines 3 and 6 look like non-standard whitespace-only lines (NBSP). Consider normalizing to plain blank lines to avoid future diff churn.
.nuget/Cuemon.Extensions.Threading/PackageReleaseNotes.txt (1)
3-6: Replace NBSP-only “blank” lines with truly empty lines. Thelines tend to create noisy diffs and inconsistent rendering in editors/pack tooling..nuget/Cuemon.Extensions.AspNetCore.Authentication/PackageReleaseNotes.txt (1)
1-6: New 10.1.1 entry looks consistent with existing format.Only nit: the “blank” lines (Line 3 and Line 6) appear to be non-breaking spaces; consider normalizing to plain empty lines to avoid tooling/diff churn.
.nuget/Cuemon.Resilience/PackageReleaseNotes.txt (1)
1-6: 10.1.1 entry addition is straightforward and matches the established pattern.Same optional whitespace note: if those are NBSP “blank” lines, normalize to empty lines.
.nuget/Cuemon.Diagnostics/PackageReleaseNotes.txt (1)
1-6: Release note addition is consistent and non-invasive.Optional: normalize “blank” lines (possible NBSP) for cleaner diffs/packaging file parsing.
.nuget/Cuemon.IO/PackageReleaseNotes.txt (1)
1-6: 10.1.1 entry is consistent with the file’s existing TFM conventions.Optional: same NBSP/whitespace normalization suggestion for the “blank” lines.
.nuget/Cuemon.Data.SqlClient/PackageReleaseNotes.txt (1)
1-6: Release notes entry looks consistent with prior versions.
Minor: consider replacing any NBSP-only “blank” lines (Line 3/6) with normal empty lines to reduce diff churn across editors..nuget/Cuemon.AspNetCore/PackageReleaseNotes.txt (1)
1-6: Release notes entry looks good and matches the established format.
Same minor note: avoid NBSP-only blank lines (Line 3/6) if possible.tooling/bdn-runner/bdn-runner.csproj (1)
4-5: UseTargetFramework(singular) if this project will never be multi-targeted.
Not required, but it avoids implying multi-target intent.- <TargetFrameworks>net10.0</TargetFrameworks> + <TargetFramework>net10.0</TargetFramework>.nuget/Cuemon.Core/PackageReleaseNotes.txt (1)
1-6: Release notes entry looks good and consistent.
Optional: normalize NBSP-only blank lines (Line 3/6) to true empty lines..nuget/Cuemon.AspNetCore.Mvc/PackageReleaseNotes.txt (1)
1-6: Release notes entry looks good and consistent.
Optional: normalize NBSP-only blank lines (Line 3/6) to true empty lines..nuget/Cuemon.Extensions.Runtime.Caching/PackageReleaseNotes.txt (1)
1-6: Consider adding a short “notable dependency upgrades” list (current entry is identical to 10.1.0).
If this release is primarily dependency bumps, listing 2–5 key packages (or linking to a central dependency diff) would make the 10.1.1 block more informative than repeating the 10.1.0 wording.CHANGELOG.md (1)
9-12: Consider adding “### Changed” bullets for 10.1.1 for consistency with the rest of the changelog.
E.g., one bullet for “Dependencies upgraded across supported TFMs” and one for “BenchmarkDotNet tooling integration”, so the entry is easier to scan.tooling/bdn-runner/Program.cs (1)
1-22: Add XML docs + verify Codebelt/BenchmarkDotNet API compatibility for the selected versions.
- Repo guideline:
Program/Mainare public → add XML doc comments.- Please double-check
BenchmarkWorkspaceOptions.Slim,CoreRuntime.Core90, andCoreRuntime.Core10_0are the intended/available runtime identifiers for the versions referenced by the solution.public class Program { + /// <summary> + /// Entry point for running BenchmarkDotNet benchmarks using Codebelt's console runner. + /// </summary> + /// <param name="args">Command-line arguments forwarded to the benchmark runner.</param> public static void Main(string[] args) { BenchmarkProgram.Run(args, o => { o.AllowDebugBuild = BenchmarkProgram.IsDebugBuild; o.ConfigureBenchmarkDotNet(c => { var slimJob = BenchmarkWorkspaceOptions.Slim; return c.AddJob(slimJob.WithRuntime(CoreRuntime.Core90)) .AddJob(slimJob.WithRuntime(CoreRuntime.Core10_0)); }); }); } }
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (60)
.nuget/Cuemon.AspNetCore.App/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.AspNetCore.Authentication/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.AspNetCore.Mvc/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.AspNetCore.Razor.TagHelpers/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.AspNetCore/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Core.App/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Core/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Data.Integrity/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Data.SqlClient/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Data/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Diagnostics/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Extensions.AspNetCore.Authentication/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Json/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Xml/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Extensions.AspNetCore.Mvc.RazorPages/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Extensions.AspNetCore.Mvc/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Extensions.AspNetCore.Text.Json/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Extensions.AspNetCore.Xml/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Extensions.AspNetCore/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Extensions.Collections.Generic/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Extensions.Collections.Specialized/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Extensions.Core/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Extensions.Data.Integrity/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Extensions.Data/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Extensions.DependencyInjection/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Extensions.Diagnostics/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Extensions.Hosting/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Extensions.IO/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Extensions.Net/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Extensions.Reflection/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Extensions.Runtime.Caching/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Extensions.Text.Json/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Extensions.Text/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Extensions.Threading/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Extensions.Xml/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.IO/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Net/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Resilience/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Runtime.Caching/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Security.Cryptography/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Threading/PackageReleaseNotes.txt(1 hunks).nuget/Cuemon.Xml/PackageReleaseNotes.txt(1 hunks)CHANGELOG.md(1 hunks)Cuemon.sln(0 hunks)Cuemon.slnx(1 hunks)Directory.Build.props(1 hunks)Directory.Build.targets(0 hunks)Directory.Packages.props(2 hunks)README.md(1 hunks)reports/tuning/Cuemon.DateSpanBenchmark-report-github.md(1 hunks)reports/tuning/Cuemon.DelimitedStringBenchmark-report-github.md(1 hunks)reports/tuning/Cuemon.GenerateBenchmark-report-github.md(1 hunks)reports/tuning/Cuemon.Security.Cryptography.AesCryptorBenchmarks-report-github.md(1 hunks)reports/tuning/Cuemon.Security.Cryptography.Sha512256Benchmark-report-github.md(1 hunks)reports/tuning/Cuemon.Security.CyclicRedundancyCheckBenchmark-report-github.md(1 hunks)reports/tuning/Cuemon.Security.FowlerNollVoHashBenchmark-report-github.md(1 hunks)reports/tuning/Cuemon.Security.HashResultBenchmark-report-github.md(1 hunks)testenvironments.json(1 hunks)tooling/bdn-runner/Program.cs(1 hunks)tooling/bdn-runner/bdn-runner.csproj(1 hunks)
💤 Files with no reviewable changes (2)
- Cuemon.sln
- Directory.Build.targets
🧰 Additional context used
📓 Path-based instructions (1)
**/*.cs
📄 CodeRabbit inference engine (.github/copilot-instructions.md)
Add XML doc comments to public and protected classes and methods where appropriate in C# files
Files:
tooling/bdn-runner/Program.cs
🧠 Learnings (18)
📚 Learning: 2025-12-06T22:17:47.167Z
Learnt from: CR
Repo: codebeltnet/cuemon PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-12-06T22:17:47.167Z
Learning: Applies to **/*Benchmark.cs : Use `[Benchmark]` on methods representing measured operations; consider `Baseline = true` and `Description` to improve report clarity
Applied to files:
tooling/bdn-runner/Program.cstooling/bdn-runner/bdn-runner.csprojreports/tuning/Cuemon.GenerateBenchmark-report-github.mdreports/tuning/Cuemon.Security.HashResultBenchmark-report-github.mdreports/tuning/Cuemon.Security.Cryptography.AesCryptorBenchmarks-report-github.mdDirectory.Build.propsreports/tuning/Cuemon.DateSpanBenchmark-report-github.mdreports/tuning/Cuemon.DelimitedStringBenchmark-report-github.mdreports/tuning/Cuemon.Security.CyclicRedundancyCheckBenchmark-report-github.md
📚 Learning: 2025-12-06T22:17:47.167Z
Learnt from: CR
Repo: codebeltnet/cuemon PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-12-06T22:17:47.167Z
Learning: Applies to **/*Benchmark.cs : Use `[GlobalSetup]` for one-time initialization in benchmarks that is not part of measured work
Applied to files:
tooling/bdn-runner/Program.cs
📚 Learning: 2025-12-06T22:17:47.167Z
Learnt from: CR
Repo: codebeltnet/cuemon PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-12-06T22:17:47.167Z
Learning: Applies to **/*.Benchmarks/**/*.csproj : Modify the associated .csproj file to override the root namespace for benchmarks (e.g., `<RootNamespace>Cuemon.Bar</RootNamespace>`) to match the production assembly
Applied to files:
tooling/bdn-runner/Program.csCuemon.slnxtooling/bdn-runner/bdn-runner.csprojDirectory.Build.propsDirectory.Packages.props
📚 Learning: 2025-12-06T22:17:47.167Z
Learnt from: CR
Repo: codebeltnet/cuemon PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-12-06T22:17:47.167Z
Learning: Applies to **/*Benchmark.cs : Use namespaces that mirror the source code structure for benchmarks. DO NOT append `.Benchmarks` to the namespace; benchmarks must live in the same namespace as the production assembly
Applied to files:
tooling/bdn-runner/Program.cstooling/bdn-runner/bdn-runner.csprojDirectory.Build.propsDirectory.Packages.props
📚 Learning: 2025-12-06T22:17:47.167Z
Learnt from: CR
Repo: codebeltnet/cuemon PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-12-06T22:17:47.167Z
Learning: Benchmarks are primarily for local and tuning runs; be cautious about running heavy BenchmarkDotNet workloads in CI
Applied to files:
tooling/bdn-runner/Program.cstooling/bdn-runner/bdn-runner.csprojreports/tuning/Cuemon.GenerateBenchmark-report-github.mdDirectory.Build.propsreports/tuning/Cuemon.DateSpanBenchmark-report-github.md
📚 Learning: 2025-12-06T22:17:47.167Z
Learnt from: CR
Repo: codebeltnet/cuemon PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-12-06T22:17:47.167Z
Learning: Applies to **/*Benchmark.cs : Use `[Params]` for input sizes or variations to exercise multiple scenarios in benchmarks
Applied to files:
tooling/bdn-runner/Program.cs
📚 Learning: 2025-12-06T22:17:47.167Z
Learnt from: CR
Repo: codebeltnet/cuemon PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-12-06T22:17:47.167Z
Learning: Applies to **/*Benchmark.cs : Use `[MemoryDiagnoser]` to capture memory allocations in benchmarks
Applied to files:
tooling/bdn-runner/Program.csreports/tuning/Cuemon.GenerateBenchmark-report-github.mdreports/tuning/Cuemon.DateSpanBenchmark-report-github.md
📚 Learning: 2025-12-06T22:17:47.167Z
Learnt from: CR
Repo: codebeltnet/cuemon PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-12-06T22:17:47.167Z
Learning: Applies to **/*Benchmark.cs : Use `[GroupBenchmarksBy(BenchmarkLogicalGroupRule.ByCategory)]` to group related benchmarks
Applied to files:
tooling/bdn-runner/Program.csDirectory.Build.props
📚 Learning: 2025-12-06T22:17:47.167Z
Learnt from: CR
Repo: codebeltnet/cuemon PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-12-06T22:17:47.167Z
Learning: Applies to **/*Benchmark.cs : When comparing implementations, mark one benchmark method with `Baseline = true` and use similar names so reports are easy to read
Applied to files:
tooling/bdn-runner/Program.csreports/tuning/Cuemon.GenerateBenchmark-report-github.mdreports/tuning/Cuemon.DateSpanBenchmark-report-github.mdreports/tuning/Cuemon.Security.CyclicRedundancyCheckBenchmark-report-github.md
📚 Learning: 2025-12-06T22:17:47.167Z
Learnt from: CR
Repo: codebeltnet/cuemon PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-12-06T22:17:47.167Z
Learning: Keep benchmark projects isolated (e.g., `tuning/*.csproj`) so they do not affect package builds or production artifacts
Applied to files:
tooling/bdn-runner/Program.csCuemon.slnxtooling/bdn-runner/bdn-runner.csprojDirectory.Build.propsDirectory.Packages.props
📚 Learning: 2025-12-06T22:17:47.167Z
Learnt from: CR
Repo: codebeltnet/cuemon PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-12-06T22:17:47.167Z
Learning: Use the same XML documentation style as found throughout the Cuemon codebase
Applied to files:
.nuget/Cuemon.Xml/PackageReleaseNotes.txtCuemon.slnx.nuget/Cuemon.Core.App/PackageReleaseNotes.txt.nuget/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Xml/PackageReleaseNotes.txt.nuget/Cuemon.Extensions.Xml/PackageReleaseNotes.txt
📚 Learning: 2025-12-06T22:17:47.167Z
Learnt from: CR
Repo: codebeltnet/cuemon PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-12-06T22:17:47.167Z
Learning: Applies to **/*.Tests/**/*.csproj : Modify the associated .csproj file to override the root namespace to match the production code namespace (e.g., `<RootNamespace>Cuemon.Foo</RootNamespace>`) so compiled namespace matches the SUT
Applied to files:
Cuemon.slnxtooling/bdn-runner/bdn-runner.csproj
📚 Learning: 2025-12-06T22:17:47.167Z
Learnt from: CR
Repo: codebeltnet/cuemon PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-12-06T22:17:47.167Z
Learning: Place micro- and component-benchmarks under the `tuning/` folder or in projects named `*.Benchmarks`
Applied to files:
tooling/bdn-runner/bdn-runner.csproj
📚 Learning: 2025-12-06T22:17:47.167Z
Learnt from: CR
Repo: codebeltnet/cuemon PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-12-06T22:17:47.167Z
Learning: For any shared helpers for benchmarking, prefer small utility classes inside the `tuning` projects rather than cross-cutting changes to production code
Applied to files:
tooling/bdn-runner/bdn-runner.csproj
📚 Learning: 2025-12-06T22:17:47.167Z
Learnt from: CR
Repo: codebeltnet/cuemon PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-12-06T22:17:47.167Z
Learning: If a benchmark exposes regressions or optimizations, add a short note in the benchmark file referencing the relevant issue or PR
Applied to files:
reports/tuning/Cuemon.GenerateBenchmark-report-github.md
📚 Learning: 2025-12-06T22:17:47.167Z
Learnt from: CR
Repo: codebeltnet/cuemon PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-12-06T22:17:47.167Z
Learning: Do not rely on external systems except for xUnit itself and `Codebelt.Extensions.Xunit` (and derived from this)
Applied to files:
Directory.Packages.props
📚 Learning: 2025-12-06T22:17:47.167Z
Learnt from: CR
Repo: codebeltnet/cuemon PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-12-06T22:17:47.167Z
Learning: Applies to **/*.Tests/**/*Test.cs : Do NOT add `using Xunit.Abstractions`. Use `using Xunit;` and rely on the `Codebelt.Extensions.Xunit` Test base class for test output access
Applied to files:
Directory.Packages.props
📚 Learning: 2025-12-06T22:17:47.167Z
Learnt from: CR
Repo: codebeltnet/cuemon PR: 0
File: .github/copilot-instructions.md:0-0
Timestamp: 2025-12-06T22:17:47.167Z
Learning: Benchmarks for the `Cuemon.Bar` assembly live in the `Cuemon.Bar.Benchmarks` assembly
Applied to files:
Directory.Packages.props
🧬 Code graph analysis (1)
tooling/bdn-runner/Program.cs (1)
src/Cuemon.Core/Extensions/Reflection/AssemblyDecoratorExtensions.cs (1)
IsDebugBuild(26-35)
🪛 LanguageTool
reports/tuning/Cuemon.Security.HashResultBenchmark-report-github.md
[grammar] ~15-~15:
Context: ... | |------------------------------------ |---------- |----- |---------------:|---...
(QB_NEW_NL_OTHER_ERROR_IDS_UNNECESSARY_CONTRACTION)
[grammar] ~15-~15:
Context: ...---------------------------- |---------- |----- |---------------:|------------:|-...
(QB_NEW_NL_OTHER_ERROR_IDS_UNNECESSARY_CONTRACTION)
[grammar] ~15-~15:
Context: ...--------------------- |---------- |----- |---------------:|------------:|--------...
(QB_NEW_NL_OTHER_ERROR_IDS_UNNECESSARY_CONTRACTION)
[grammar] ~15-~15:
Context: ...------ |---------- |----- |---------------:|------------:|------------:|----------...
(QB_NEW_NL_OTHER_ERROR_IDS_UNNECESSARY_CONTRACTION)
[grammar] ~15-~15:
Context: ...---- |----- |---------------:|------------:|------------:|---------------:|-------...
(QB_NEW_NL_OTHER_ERROR_IDS_UNNECESSARY_CONTRACTION)
[grammar] ~15-~15:
Context: ...--------------:|------------:|------------:|---------------:|---------------:|----...
(QB_NEW_NL_OTHER_ERROR_IDS_UNNECESSARY_CONTRACTION)
[grammar] ~15-~15:
Context: ...-----------:|------------:|---------------:|---------------:|---------------:|----...
(QB_NEW_NL_OTHER_ERROR_IDS_UNNECESSARY_CONTRACTION)
[grammar] ~15-~15:
Context: ...--------:|---------------:|---------------:|---------------:|-------:|-------:|---...
(QB_NEW_NL_OTHER_ERROR_IDS_UNNECESSARY_CONTRACTION)
[grammar] ~15-~15:
Context: ...--------:|---------------:|---------------:|-------:|-------:|----------:| | **...
(QB_NEW_NL_OTHER_ERROR_IDS_UNNECESSARY_CONTRACTION)
[grammar] ~15-~15:
Context: ...|---------------:|---------------:|-------:|-------:|----------:| | **'HashRes...
(QB_NEW_NL_OTHER_ERROR_IDS_UNNECESSARY_CONTRACTION)
[grammar] ~15-~15:
Context: ...-------:|---------------:|-------:|-------:|----------:| | **'HashResult.GetBy...
(QB_NEW_NL_OTHER_ERROR_IDS_UNNECESSARY_CONTRACTION)
[grammar] ~15-~15:
Context: ...----------:|-------:|-------:|----------:| | **'HashResult.GetBytes - copy byt...
(QB_NEW_NL_OTHER_ERROR_IDS_UNNECESSARY_CONTRACTION)
[grammar] ~16-~16: Zin met fouten
Context: ...-:| | 'HashResult.GetBytes - copy bytes' | .NET 10.0 | 0 | **...
(QB_NEW_NL_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)
[grammar] ~22-~22: Interpunctie toevoegen
Context: ... ns | - | - | - | | 'HashResult.GetBytes - copy bytes' | .NET 9.0 ...
(QB_NEW_NL_OTHER_ERROR_IDS_MISSING_PUNCTUATION)
[grammar] ~22-~22: Zin met fouten
Context: ... - | | 'HashResult.GetBytes - copy bytes' | .NET 9.0 | 0 | 1.1013 ns | ...
(QB_NEW_NL_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)
[grammar] ~27-~27: Interpunctie toevoegen
Context: ... ns | - | - | - | | 'HashResult.To<string> (converter)' | .NET...
(QB_NEW_NL_OTHER_ERROR_IDS_MISSING_PUNCTUATION)
[grammar] ~28-~28: Zin met fouten
Context: ...- | | 'HashResult.GetBytes - copy bytes' | .NET 10.0 | 8 | **...
(QB_NEW_NL_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)
[grammar] ~33-~33: Interpunctie toevoegen
Context: ... ns | 0.0421 | - | 664 B | | 'HashResult.To<string> (converter)' | .NET...
(QB_NEW_NL_OTHER_ERROR_IDS_MISSING_PUNCTUATION)
[grammar] ~34-~34: Zin met fouten
Context: ...8 B | | 'HashResult.GetBytes - copy bytes' | .NET 9.0 | 8 | 4.9752 ns | ...
(QB_NEW_NL_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)
[grammar] ~39-~39: Interpunctie toevoegen
Context: ... ns | 0.0423 | - | 664 B | | 'HashResult.To<string> (converter)' | .NET...
(QB_NEW_NL_OTHER_ERROR_IDS_MISSING_PUNCTUATION)
[grammar] ~40-~40: Interpunctie toevoegen
Context: ...s | 0.0031 | - | 48 B | | 'HashResult.GetBytes - copy bytes' | **.NET 1...
(QB_NEW_NL_OTHER_ERROR_IDS_MISSING_PUNCTUATION)
[grammar] ~40-~40: Zin met fouten
Context: ...B | | 'HashResult.GetBytes - copy bytes' | .NET 10.0 | 32 | **...
(QB_NEW_NL_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)
[grammar] ~46-~46: Zin met fouten
Context: ...2 B | | 'HashResult.GetBytes - copy bytes' | .NET 9.0 | 32 | 5.6659 ns | ...
(QB_NEW_NL_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)
[grammar] ~52-~52: Zin met fouten
Context: ...B | | 'HashResult.GetBytes - copy bytes' | .NET 10.0 | 256 | **1...
(QB_NEW_NL_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)
[grammar] ~58-~58: Zin met fouten
Context: ...2 B | | 'HashResult.GetBytes - copy bytes' | .NET 9.0 | 256 | 13.3596 ns | ...
(QB_NEW_NL_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)
[grammar] ~64-~64: Interpunctie toevoegen
Context: ...s | 0.0453 | - | 712 B | | 'HashResult.GetBytes - copy bytes' | **.NET 1...
(QB_NEW_NL_OTHER_ERROR_IDS_MISSING_PUNCTUATION)
[grammar] ~64-~64: Zin met fouten
Context: ...B | | 'HashResult.GetBytes - copy bytes' | .NET 10.0 | 1024 | **3...
(QB_NEW_NL_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)
[grammar] ~69-~69: Interpunctie toevoegen
Context: ... ns | 4.8359 | - | 76504 B | | 'HashResult.To<string> (converter)' | .NET...
(QB_NEW_NL_OTHER_ERROR_IDS_MISSING_PUNCTUATION)
[grammar] ~70-~70: Interpunctie toevoegen
Context: ... ns | 0.1755 | - | 2760 B | | 'HashResult.GetBytes - copy bytes' | .NET 9.0 ...
(QB_NEW_NL_OTHER_ERROR_IDS_MISSING_PUNCTUATION)
[grammar] ~70-~70: Zin met fouten
Context: ...0 B | | 'HashResult.GetBytes - copy bytes' | .NET 9.0 | 1024 | 80.2916 ns | ...
(QB_NEW_NL_OTHER_ERROR_IDS_REPLACEMENT_MULTITOKEN)
[grammar] ~75-~75: Interpunctie toevoegen
Context: ... ns | 4.8257 | - | 76504 B | | 'HashResult.To<string> (converter)' | .NET...
(QB_NEW_NL_OTHER_ERROR_IDS_MISSING_PUNCTUATION)
reports/tuning/Cuemon.Security.Cryptography.AesCryptorBenchmarks-report-github.md
[grammar] ~20-~20: Interpunctie toevoegen
Context: ... 768.6 ns | 0.0511 | 840 B | | AesCryptor.Encrypt | .NET 10.0 | 1024 | ...
(QB_NEW_NL_OTHER_ERROR_IDS_MISSING_PUNCTUATION)
[grammar] ~24-~24: Interpunctie toevoegen
Context: ... 1,392.8 ns | 0.1075 | 1736 B | | AesCryptor.Encrypt | .NET 10.0 | 65536 | ...
(QB_NEW_NL_OTHER_ERROR_IDS_MISSING_PUNCTUATION)
🪛 markdownlint-cli2 (0.18.1)
reports/tuning/Cuemon.GenerateBenchmark-report-github.md
14-14: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
reports/tuning/Cuemon.Security.HashResultBenchmark-report-github.md
14-14: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
reports/tuning/Cuemon.Security.FowlerNollVoHashBenchmark-report-github.md
14-14: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
reports/tuning/Cuemon.Security.Cryptography.AesCryptorBenchmarks-report-github.md
14-14: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
reports/tuning/Cuemon.DateSpanBenchmark-report-github.md
14-14: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
reports/tuning/Cuemon.DelimitedStringBenchmark-report-github.md
14-14: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
reports/tuning/Cuemon.Security.Cryptography.Sha512256Benchmark-report-github.md
14-14: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
- GitHub Check: CodeQL analysis (csharp)
- GitHub Check: Agent
- GitHub Check: call-build (Release) / 🛠️ Build
- GitHub Check: call-build (Debug) / 🛠️ Build
- GitHub Check: Analyze (csharp)
🔇 Additional comments (39)
.nuget/Cuemon.Extensions.Collections.Generic/PackageReleaseNotes.txt (1)
1-6: Confirm the 10.1.1 entry isn’t an accidental duplicate of 10.1.0 (and consider whitespace normalization).Line 5 is identical to the 10.1.0 ALM bullet (Line 11). If 10.1.1 truly only rolls dependency bumps, this is fine; otherwise consider adding the missing specifics (or at least key upgraded packages). Also, Lines 3/6 appear to be NBSP separators (
); if not intentional, replacing them with normal blank lines will reduce diff-noise across editors..nuget/Cuemon.Extensions.Text/PackageReleaseNotes.txt (1)
1-6: Verify that Version 10.1.1 release notes are complete.Lines 5 and 11 contain identical dependency upgrade messages for versions 10.1.1 and 10.1.0 respectively. In a typical release cycle, patch versions (10.1.0 → 10.1.1) or minor versions should document distinct changes. Having identical release notes suggests either:
- These two versions genuinely have the same dependency upgrades (possible for maintenance releases), or
- Release notes for 10.1.1 are incomplete and missing documentation of additional changes
Please verify that the 10.1.1 release notes accurately reflect all changes in that version. If other package release notes in this PR exhibit the same pattern, consider whether this is intentional across the release or a documentation gap.
[minor_issue]
.nuget/Cuemon.AspNetCore.Razor.TagHelpers/PackageReleaseNotes.txt (1)
1-5: Clarify the differences between Version 10.1.1 and 10.1.0 in the release notes.Versions 10.1.1 and 10.1.0 have identical release notes content (same Availability and ALM section). For a patch version bump, the release notes should typically document what changed compared to the previous minor version. Either the content for 10.1.1 needs to be more specific about its changes, or this duplication should be verified to ensure it's not a copy-paste error.
Please verify whether Version 10.1.1 contains only the same dependency upgrades as 10.1.0, or if there are additional fixes/changes that should be documented separately.
.nuget/Cuemon.Extensions.Reflection/PackageReleaseNotes.txt (1)
1-6: Release notes for Version 10.1.1 are correctly formatted and documented.The new version entry follows the established pattern, with consistent formatting, target frameworks, and ALM changelog. The dependency upgrade note aligns with the PR objective of documenting the latest compatible dependency versions for all supported TFMs.
.nuget/Cuemon.Core.App/PackageReleaseNotes.txt (1)
1-5: Release notes for v10.1.1 follow established format and conventions.The new section maintains consistency with existing entries: proper version header, correct availability statement matching the current support matrix (.NET 10, .NET 9, .NET Standard 2.0), and appropriate ALM categorization language aligned with recent versions.
One minor observation: Version 10.1.1 and 10.1.0 share identical ALM notes (both documenting dependency upgrades). This is likely intentional for consecutive patch releases, but please verify that the v10.1.1 changelog accurately reflects what changed in that specific release and isn't a copy-paste from 10.1.0.
.nuget/Cuemon.Extensions.Text.Json/PackageReleaseNotes.txt (1)
1-6: Verify that Version 10.1.1 release notes are not duplicated from Version 10.1.0.The new Version 10.1.1 entry (lines 1–6) has identical content to the Version 10.1.0 entry (lines 10–11), both stating the same dependency upgrade note. For consecutive patch releases, this could be confusing for users consuming the package.
Confirm whether:
- Version 10.1.1 includes only the same dependency upgrades as 10.1.0 (in which case the duplication may be intentional as a convention)
- Version 10.1.1 has additional changes that should be documented beyond dependency upgrades
- This pattern is consistent across all other Cuemon.* packages in this PR
.nuget/Cuemon.Extensions.Diagnostics/PackageReleaseNotes.txt (1)
1-6: TFM availability is accurate.The release notes correctly state ".NET 10, .NET 9 and .NET Standard 2.0" — this matches the
TargetFrameworksdeclared inDirectory.Build.propsfor source projects. The dependency upgrade claim is consistent with the Central Package Management setup shown inDirectory.Packages.props, which specifies versioned dependencies for each TFM (e.g., 10.0.1 packages for net10 and netstandard2, 9.0.11 for net9). No issues found..nuget/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Xml/PackageReleaseNotes.txt (1)
1-6: 10.1.1 release note entry matches the existing format and intent..nuget/Cuemon.Xml/PackageReleaseNotes.txt (1)
1-6: Release-notes entry is correct; no changes needed.The
.NET 10listing is appropriate. .NET 10 achieved general availability on November 11, 2025 (as an LTS release), well before this PR's date. The repository convention across all release notes is to list supported target frameworks without GA/preview designation, which is clear and consistent..nuget/Cuemon.Extensions.AspNetCore.Mvc.RazorPages/PackageReleaseNotes.txt (2)
1-6: Release-notes entry is consistent and clear.Top-entry for 10.1.1 matches the existing structure and keeps the “dependencies upgraded” message consistent with prior releases.
1-6: No changes required.The "Availability" field using marketing names (".NET 10 and .NET 9") is consistent with all other package release notes in this repo (Version 10.1.0, 10.0.0, etc.) and follows standard practice for user-facing documentation. The apparent blank lines on lines 3 & 6 contain regular spaces and present no formatting issue. The duplicate ALM entry is acceptable for release notes when versions share identical changes.
.nuget/Cuemon.Extensions.DependencyInjection/PackageReleaseNotes.txt (1)
1-6: 10.1.1 release-note block looks consistent; please double-check the “Availability” TFMs match the package’s actual multi-targeting.
Since the ALM entry is identical to 10.1.0, just ensure 10.1.1 didn’t also change TFMs (or note it here if it did)..nuget/Cuemon.Extensions.AspNetCore.Xml/PackageReleaseNotes.txt (1)
1-6: Good addition of the 10.1.1 entry; verify this package is intentionally not shipping .NET Standard for 10.1.1..nuget/Cuemon.Extensions.IO/PackageReleaseNotes.txt (1)
1-6: 10.1.1 entry is fine; please confirm the “Availability” list (including both .NET Standard 2.1 and 2.0) matches the actual target frameworks produced..nuget/Cuemon.Extensions.Data/PackageReleaseNotes.txt (1)
1-6: Looks good; quick verification thatCuemon.Extensions.Datastill targets .NET Standard 2.0 in 10.1.1 (since “Availability” claims it)..nuget/Cuemon.Extensions.Xml/PackageReleaseNotes.txt (1)
1-6: 10.1.1 block is consistent; please ensure whitespace/newlines are consistent (avoid NBSP surprises) so packaging/release-note tooling doesn’t diff or parse oddly..nuget/Cuemon.Security.Cryptography/PackageReleaseNotes.txt (1)
1-6: Good 10.1.1 release-note entry; please confirm the stated TFMs (incl. .NET Standard 2.0) match the actual package targets for 10.1.1..nuget/Cuemon.AspNetCore.Authentication/PackageReleaseNotes.txt (1)
1-6: LGTM; just verifyCuemon.AspNetCore.Authentication10.1.1 is indeed only.NET 10/.NET 9(no netstandard targets) as stated..nuget/Cuemon.Runtime.Caching/PackageReleaseNotes.txt (1)
1-6: Looks consistent with the rest of the release-note updates; please confirm the package still targets.NET Standard 2.0in 10.1.1 as listed..nuget/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Text.Json/PackageReleaseNotes.txt (1)
1-6: Looks good; the "Availability: .NET 10 and .NET 9" correctly matches the package's TargetFrameworks (net10.0;net9.0). However, the blank separator lines contain non-breaking spaces (U+00A0) that should be replaced with regular spaces to avoid noisy diffs. Update lines 3 and 6 to use standard whitespace..nuget/Cuemon.Data.Integrity/PackageReleaseNotes.txt (1)
1-6: TFMs verified and correct. The stated availability ".NET 10, .NET 9 and .NET Standard 2.0" matches the actual target frameworks declared in Directory.Build.props (net10.0;net9.0;netstandard2.0)..nuget/Cuemon.Threading/PackageReleaseNotes.txt (1)
1-6: LGTM. The TFMs declared in Directory.Build.props (line 21:net10.0;net9.0;netstandard2.0) match the release note availability statement exactly..nuget/Cuemon.Extensions.AspNetCore.Mvc/PackageReleaseNotes.txt (1)
1-6: Verify that version 10.1.1 exists and confirm the target frameworks match the stated availability. The NuGet package version 10.1.1 could not be located in public sources; nearby versions (10.1.0) show support for .NET 10 and .NET 9, but confirm this specific release version and its actual TFMs before publishing..nuget/Cuemon.Extensions.Hosting/PackageReleaseNotes.txt (1)
1-6: Version 10.1.1 does not exist on NuGet for Cuemon.Extensions.Hosting. The latest stable release is v9.0.8, which targets .NETStandard 2.0, net8.0, and net9.0. Verify the correct version number for this release note entry.Likely an incorrect or invalid review comment.
testenvironments.json (1)
10-13: Verify the Docker image taggimlichael/ubuntu-testrunner:net8.0.416-9.0.307-10.0.101is published and accessible. Public information about this custom image tag is not available; confirm the tag exists in your Docker registry and that CI can pull it successfully. If using Docker Hub, also verify network access and authentication are properly configured..nuget/Cuemon.Extensions.AspNetCore.Text.Json/PackageReleaseNotes.txt (1)
1-6: TFMs are accurate. The project configuration specifiesnet10.0;net9.0, which correctly matches the stated "Availability: .NET 10 and .NET 9"..nuget/Cuemon.Extensions.Core/PackageReleaseNotes.txt (1)
1-6: LGTM; 10.1.1 TFMs align correctly with the "Availability" line.Verified that source projects in this repository target
net10.0;net9.0;netstandard2.0(per Directory.Build.props), which matches the release notes' availability statement exactly..nuget/Cuemon.Data/PackageReleaseNotes.txt (1)
1-6: 10.1.1 release block is clear and consistent.Optional: ensure the “Availability” list is intentionally different from packages that don’t include
.NET Standard 2.0(this one does)..nuget/Cuemon.Extensions.Collections.Specialized/PackageReleaseNotes.txt (1)
1-6: 10.1.1 block matches the rest of the changelog structure.Optional: double-check that
.NET Standard 2.0support is still correct for this package, since some others list only.NET 10/.NET 9..nuget/Cuemon.Extensions.AspNetCore/PackageReleaseNotes.txt (1)
1-6: 10.1.1 entry looks good; preserves prior sections cleanly.Optional: confirm the Availability omission of
.NET Standard 2.0is intentional for this package..nuget/Cuemon.Extensions.Net/PackageReleaseNotes.txt (1)
1-6: 10.1.1 release note addition is consistent and readable.Optional: verify the Availability line is correct for this package (includes
.NET Standard 2.0)..nuget/Cuemon.AspNetCore.App/PackageReleaseNotes.txt (1)
1-5: Verify the duplication of dependency-upgrade messaging between v10.1.1 and v10.1.0.Lines 5 and 11 contain identical wording about upgrading dependencies to latest compatible versions. If both v10.1.0 and v10.1.1 performed dependency upgrades in the same PR, clarify why separate release blocks are needed. If v10.1.0 was a prior release, consider updating its notes to reflect what was actually changed in that version (not a retroactive upgrade).
reports/tuning/Cuemon.Security.Cryptography.Sha512256Benchmark-report-github.md (1)
1-64: Inconsistent benchmark report table schema across reports.This report uses a different column set (including Ratio, RatioSD, Alloc Ratio) than
Cuemon.Security.FowlerNollVoHashBenchmark-report-github.md. Verify whether this inconsistency is intentional or whether all benchmark reports should be standardized to the same schema.Cuemon.slnx (1)
1-95: All project file references in Cuemon.slnx are present and valid. No action required.Directory.Packages.props (2)
9-9: Good addition, but please verify package availability/TFM support forCodebelt.Extensions.BenchmarkDotNet.Console1.0.0.
Since this is a new dependency in central management, confirm it supports your tooling/runtime matrix (net10.0, and whatever the runner uses) and restores cleanly.
24-50: Double-check conditional versioning doesn’t produce surprising restores.
WithMicrosoft.Data.Sqlitedefined under net4 (Line 25), net9 (Line 38), and net10 OR netstandard2 (Line 45), plus separateMicrosoft.Extensions.*versions for net9 vs net10, please verify the intended version is selected per TFM and there are no conflicts/warnings during restore.tooling/bdn-runner/bdn-runner.csproj (2)
14-15: PackageReference relies on central versions—verify the resolved version is the intended one.
Since Line 14 omitsVersion, ensureDirectory.Packages.propsis always imported for this project and restore resolvesCodebelt.Extensions.BenchmarkDotNet.Consoleto the expected version.
8-10: The globbedProjectReferenceis correctly isolated and poses no risk to package builds. Lines 8-10 useReferenceOutputAssembly="false"andPrivate="false", which prevent benchmark assemblies from being copied to output or packaged. The glob pattern is appropriate for this use case (a BenchmarkDotNet runner that discovers all tuning projects) and bdn-runner is not built in CI, so no unintended restoration or build overhead occurs. No changes required.Directory.Build.props (1)
2-13: No action required —PackageReleaseNotesFileis properly consumed.The property is read by the
PreparePackageReleaseNotesFromFiletarget inDirectory.Build.targets(line 2), which runs beforeGenerateNuspecand populates thePackageReleaseNotesmetadata used by the NuGet pack pipeline. The design is documented and intentional.
| Version 10.1.1 | ||
| Availability: .NET 10 and .NET 9 | ||
|
|
||
| # ALM | ||
| - CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Replace non-breaking-space blank lines with plain empty lines to avoid diff/tooling noise.
Line 3 and Line 6 appear to be NBSP-only lines; recommend converting them to truly empty lines.
Version 10.1.1
Availability: .NET 10 and .NET 9
-
+
# ALM
- CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)
-
+📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| Version 10.1.1 | |
| Availability: .NET 10 and .NET 9 | |
| # ALM | |
| - CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) | |
| Version 10.1.1 | |
| Availability: .NET 10 and .NET 9 | |
| # ALM | |
| - CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) | |
🤖 Prompt for AI Agents
.nuget/Cuemon.Extensions.AspNetCore.Mvc.Formatters.Xml/PackageReleaseNotes.txt
lines 1-6 contain lines that are only non-breaking spaces (NBSP) causing
diff/tooling noise; replace those NBSP-only lines with truly empty lines. Open
the file, locate line 3 and line 6, remove any U+00A0 characters on those lines
(or delete the entire line content) so the lines contain no characters, save the
file with UTF-8 encoding, and re-run git diff to confirm the blank lines are
plain empty lines.
| Version 10.1.1 | ||
| Availability: .NET 10, .NET 9 and .NET Standard 2.0 | ||
|
|
||
| # ALM | ||
| - CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
cat -n .nuget/Cuemon.Extensions.Threading/PackageReleaseNotes.txt | head -30Repository: codebeltnet/cuemon
Length of output: 1263
The Version 10.1.1 entry duplicates the exact ALM text from Version 10.1.0: both state "Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs)". If both versions legitimately upgraded dependencies, differentiate the entries (e.g., note specific dependency changes or versions bumped in each) so readers can distinguish what changed between consecutive releases. If 10.1.1 entry is unintentional duplication from 10.1.0, remove or correct it.
🤖 Prompt for AI Agents
.nuget/Cuemon.Extensions.Threading/PackageReleaseNotes.txt lines 1-6: The
Version 10.1.1 entry duplicates the ALM note from 10.1.0; either clarify what
exactly changed in 10.1.1 (list specific dependencies and versions updated or
mention other changes) or remove/correct the unintended duplicate. Edit the
10.1.1 section to describe unique changes (e.g., "CHANGED Dependency X ->
vA.B.C, Dependency Y -> vD.E.F" or "NO CODE CHANGES; packaging fix") or delete
the entry if it was added accidentally.
| Version 10.1.1 | ||
| Availability: .NET 10, .NET 9 and .NET Standard 2.0 | ||
|
|
||
| # ALM | ||
| - CHANGED Dependencies have been upgraded to the latest compatible versions for all supported target frameworks (TFMs) | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
10.1.1 release-note block is consistent; consider tightening whitespace + making “dependencies upgraded” more actionable.
- The new 10.1.1 entry matches the established structure and availability formatting used below.
- Lines 3 and 6 look like they contain NBSP/nonstandard whitespace; consider normalizing to plain empty lines to avoid churn in future diffs/changelog tooling.
- Optional: “Dependencies have been upgraded…” is very generic—if feasible, add a short pointer to where the exact dependency bumps are listed (e.g., central package management file / changelog section) so consumers can audit quickly.
🤖 Prompt for AI Agents
In .nuget/Cuemon.Net/PackageReleaseNotes.txt around lines 1 to 6, the 10.1.1
release-note block contains nonstandard whitespace on lines 3 and 6 and a
generic dependency message; normalize those NBSPs to plain empty lines to avoid
diff churn and tighten surrounding whitespace, and replace or augment the
“Dependencies have been upgraded…” line with a short actionable pointer (for
example “See Directory.Build.props / central package management or CHANGELOG.md
for exact package version bumps” or a brief list of the bumped packages) so
consumers can quickly audit the changes.
| All code quality analysis are done by [SonarCloud](https://sonarcloud.io/) and [CodeCov.io](https://codecov.io/). | ||
|
|
||
|   [](https://codecov.io/gh/codebeltnet/cuemon) [](https://sonarcloud.io/dashboard?id=Cuemon) [](.github/CODE_OF_CONDUCT.md) [](https://scorecard.dev/viewer/?uri=github.com/codebeltnet/cuemon) | ||
|   [](https://codecov.io/gh/codebeltnet/cuemon) [](https://sonarcloud.io/dashboard?id=Cuemon) [](.github/CODE_OF_CONDUCT.md) [](https://scorecard.dev/viewer/?uri=github.com/codebeltnet/cuemon) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Update Codecov badge to track main (currently points at development).
Given the README text that only main is maintained, the Codecov badge likely should align to main as well.
🧰 Tools
🤖 Prompt for AI Agents
In README.md around line 32 the Codecov badge URL references the 'development'
branch; update the badge to reference the 'main' branch so it tracks main
instead of development by changing the badge link path to use branch=main
(ensure the surrounding markdown remains valid and the other badges are
unchanged).
| ``` | ||
| | Method | Job | Runtime | Mean | Error | StdDev | Median | Min | Max | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | | ||
| |------------------------------- |---------- |---------- |--------------:|------------:|------------:|--------------:|--------------:|--------------:|-------:|--------:|-------:|----------:|------------:| | ||
| | 'Ctor (short span)' | .NET 10.0 | .NET 10.0 | 45.8507 ns | 5.8035 ns | 6.6833 ns | 47.2065 ns | 36.6149 ns | 61.9278 ns | 0.870 | 0.13 | 0.0049 | 80 B | 0.56 | | ||
| | 'Ctor (medium span)' | .NET 10.0 | .NET 10.0 | 211.8744 ns | 5.9982 ns | 6.1597 ns | 209.9891 ns | 205.2014 ns | 226.1942 ns | 4.021 | 0.14 | 0.0045 | 80 B | 0.56 | | ||
| | 'Ctor (long span)' | .NET 10.0 | .NET 10.0 | 1,800.3386 ns | 101.5296 ns | 112.8499 ns | 1,757.1949 ns | 1,695.9095 ns | 2,069.9047 ns | 34.165 | 2.20 | - | 80 B | 0.56 | | ||
| | 'Ctor (single-date)' | .NET 10.0 | .NET 10.0 | 85.2482 ns | 1.0630 ns | 0.8877 ns | 84.9364 ns | 84.1945 ns | 87.5016 ns | 1.618 | 0.04 | 0.0049 | 80 B | 0.56 | | ||
| | 'Parse (short)' | .NET 10.0 | .NET 10.0 | 155.4206 ns | 2.1092 ns | 1.8698 ns | 155.2286 ns | 152.9120 ns | 159.4585 ns | 2.949 | 0.07 | 0.0050 | 80 B | 0.56 | | ||
| | 'Parse (long)' | .NET 10.0 | .NET 10.0 | 1,370.1648 ns | 19.9091 ns | 17.6489 ns | 1,360.0428 ns | 1,351.5894 ns | 1,405.5931 ns | 26.002 | 0.62 | - | 80 B | 0.56 | | ||
| | 'ToString (short)' | .NET 10.0 | .NET 10.0 | 131.4024 ns | 3.1530 ns | 3.6310 ns | 129.5049 ns | 128.0854 ns | 138.6695 ns | 2.494 | 0.08 | 0.0143 | 232 B | 1.61 | | ||
| | 'ToString (long)' | .NET 10.0 | .NET 10.0 | 130.1290 ns | 1.7457 ns | 1.6330 ns | 130.0559 ns | 127.8197 ns | 132.8534 ns | 2.469 | 0.06 | 0.0150 | 240 B | 1.67 | | ||
| | 'GetWeeks (short)' | .NET 10.0 | .NET 10.0 | 1.6572 ns | 0.0395 ns | 0.0350 ns | 1.6515 ns | 1.6086 ns | 1.7354 ns | 0.031 | 0.00 | - | - | 0.00 | | ||
| | 'GetWeeks (long)' | .NET 10.0 | .NET 10.0 | 0.6293 ns | 0.0671 ns | 0.0746 ns | 0.5999 ns | 0.5525 ns | 0.8068 ns | 0.012 | 0.00 | - | - | 0.00 | | ||
| | GetHashCode | .NET 10.0 | .NET 10.0 | 0.4267 ns | 0.0095 ns | 0.0074 ns | 0.4279 ns | 0.4132 ns | 0.4374 ns | 0.008 | 0.00 | - | - | 0.00 | | ||
| | 'Equals (value vs same value)' | .NET 10.0 | .NET 10.0 | 1,716.4099 ns | 18.8782 ns | 16.7351 ns | 1,713.9468 ns | 1,695.7291 ns | 1,743.1789 ns | 32.572 | 0.73 | - | 80 B | 0.56 | | ||
| | 'Operator == (same value)' | .NET 10.0 | .NET 10.0 | 1,726.2320 ns | 36.5756 ns | 39.1354 ns | 1,712.3598 ns | 1,691.1513 ns | 1,835.6900 ns | 32.759 | 0.99 | - | 80 B | 0.56 | | ||
| | 'Ctor (short span)' | .NET 9.0 | .NET 9.0 | 52.7174 ns | 1.0899 ns | 1.1192 ns | 52.3923 ns | 50.8562 ns | 54.8449 ns | 1.000 | 0.03 | 0.0091 | 144 B | 1.00 | | ||
| | 'Ctor (medium span)' | .NET 9.0 | .NET 9.0 | 224.6956 ns | 5.2695 ns | 5.6383 ns | 221.8543 ns | 219.5452 ns | 237.8165 ns | 4.264 | 0.14 | 0.0090 | 144 B | 1.00 | | ||
| | 'Ctor (long span)' | .NET 9.0 | .NET 9.0 | 1,790.5534 ns | 33.6635 ns | 28.1106 ns | 1,779.6856 ns | 1,762.9207 ns | 1,862.1473 ns | 33.979 | 0.86 | 0.0071 | 144 B | 1.00 | | ||
| | 'Ctor (single-date)' | .NET 9.0 | .NET 9.0 | 107.9379 ns | 1.9648 ns | 1.6407 ns | 107.3828 ns | 106.3406 ns | 112.2844 ns | 2.048 | 0.05 | 0.0090 | 144 B | 1.00 | | ||
| | 'Parse (short)' | .NET 9.0 | .NET 9.0 | 198.0320 ns | 3.8471 ns | 3.2125 ns | 196.1874 ns | 195.2844 ns | 206.0204 ns | 3.758 | 0.10 | 0.0087 | 144 B | 1.00 | | ||
| | 'Parse (long)' | .NET 9.0 | .NET 9.0 | 1,555.6981 ns | 46.4246 ns | 51.6008 ns | 1,541.6413 ns | 1,495.6555 ns | 1,667.2954 ns | 29.523 | 1.13 | 0.0060 | 144 B | 1.00 | | ||
| | 'ToString (short)' | .NET 9.0 | .NET 9.0 | 123.5641 ns | 4.4744 ns | 5.1527 ns | 121.5069 ns | 118.7768 ns | 132.8566 ns | 2.345 | 0.11 | 0.0144 | 232 B | 1.61 | | ||
| | 'ToString (long)' | .NET 9.0 | .NET 9.0 | 120.8127 ns | 1.8377 ns | 1.7190 ns | 120.7993 ns | 117.4110 ns | 123.1928 ns | 2.293 | 0.06 | 0.0153 | 240 B | 1.67 | | ||
| | 'GetWeeks (short)' | .NET 9.0 | .NET 9.0 | 1.7451 ns | 0.0621 ns | 0.0690 ns | 1.7347 ns | 1.6693 ns | 1.9067 ns | 0.033 | 0.00 | - | - | 0.00 | | ||
| | 'GetWeeks (long)' | .NET 9.0 | .NET 9.0 | 1.0743 ns | 0.0576 ns | 0.0640 ns | 1.0417 ns | 1.0130 ns | 1.2203 ns | 0.020 | 0.00 | - | - | 0.00 | | ||
| | GetHashCode | .NET 9.0 | .NET 9.0 | 0.6214 ns | 0.0232 ns | 0.0194 ns | 0.6166 ns | 0.5944 ns | 0.6616 ns | 0.012 | 0.00 | - | - | 0.00 | | ||
| | 'Equals (value vs same value)' | .NET 9.0 | .NET 9.0 | 1,764.3783 ns | 38.5226 ns | 42.8178 ns | 1,741.5046 ns | 1,720.5733 ns | 1,848.1940 ns | 33.483 | 1.05 | 0.0069 | 144 B | 1.00 | | ||
| | 'Operator == (same value)' | .NET 9.0 | .NET 9.0 | 1,744.8519 ns | 26.0303 ns | 21.7365 ns | 1,744.7386 ns | 1,714.5742 ns | 1,776.5430 ns | 33.112 | 0.79 | 0.0070 | 144 B | 1.00 | | ||
| | Method | Runtime | Mean | Error | StdDev | Median | Min | Max | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add blank line before benchmark results table (MD058).
Line 13 (code fence closing) should be followed by a blank line before the table header on line 14.
Apply this fix:
PowerPlanMode=00000000-0000-0000-0000-000000000000 IterationTime=250ms MaxIterationCount=20
MinIterationCount=15 WarmupCount=1
| Method | Runtime | Mean | Error | StdDev | Median | Min | Max | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio |
<details>
<summary>🧰 Tools</summary>
<details>
<summary>🪛 markdownlint-cli2 (0.18.1)</summary>
14-14: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
</details>
</details>
<details>
<summary>🤖 Prompt for AI Agents</summary>
In reports/tuning/Cuemon.DateSpanBenchmark-report-github.md around lines 13 to
14, the markdown table header is not separated from the preceding code fence by
a blank line (MD058); insert a single blank line after the closing code fence on
line 13 so the table header on line 14 is preceded by an empty line, preserving
existing indentation and no other changes.
</details>
<!-- fingerprinting:phantom:triton:mongoose -->
<!-- This is an auto-generated comment by CodeRabbit -->
| ``` | ||
| | Method | Job | Runtime | Variant | Mean | Error | StdDev | Median | Min | Max | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | | ||
| |------------------------------------------------------------------- |---------- |---------- |----------------- |---------------:|-------------:|-------------:|---------------:|---------------:|---------------:|---------:|---------:|-------:|----------:|------------:| | ||
| | **'Custom SHA-512/256 — small (64 bytes)'** | **.NET 10.0** | **.NET 10.0** | **CustomSHA512_256** | **396.9 ns** | **8.53 ns** | **9.82 ns** | **393.4 ns** | **383.9 ns** | **417.4 ns** | **0.88** | **0.20** | **0.0704** | **1104 B** | **1.00** | | ||
| | 'Custom SHA-512/256 — large (1 MB)' | .NET 10.0 | .NET 10.0 | CustomSHA512_256 | 2,215,370.3 ns | 30,618.15 ns | 27,142.19 ns | 2,200,658.2 ns | 2,187,930.5 ns | 2,263,451.6 ns | 4,910.01 | 1,093.90 | - | 1104 B | 1.00 | | ||
| | 'Built-in SHA-512 truncated -> 256 — small (64 bytes)' | .NET 10.0 | .NET 10.0 | CustomSHA512_256 | 441.2 ns | 8.58 ns | 8.42 ns | 438.1 ns | 432.7 ns | 454.7 ns | 0.98 | 0.22 | 0.0233 | 368 B | 0.33 | | ||
| | 'Built-in SHA-512 truncated -> 256 — large (1 MB)' | .NET 10.0 | .NET 10.0 | CustomSHA512_256 | 1,346,672.3 ns | 12,525.60 ns | 11,103.62 ns | 1,344,033.3 ns | 1,335,707.8 ns | 1,371,581.2 ns | 2,984.68 | 664.42 | - | 369 B | 0.33 | | ||
| | 'Param-based: ComputeHash (selects algorithm by [Params] Variant)' | .NET 10.0 | .NET 10.0 | CustomSHA512_256 | 552.2 ns | 111.87 ns | 128.83 ns | 634.6 ns | 380.5 ns | 687.4 ns | 1.22 | 0.39 | 0.0696 | 1104 B | 1.00 | | ||
| | 'Custom SHA-512/256 — small (64 bytes)' | .NET 9.0 | .NET 9.0 | CustomSHA512_256 | 479.0 ns | 112.17 ns | 129.18 ns | 400.1 ns | 373.3 ns | 691.4 ns | 1.06 | 0.37 | 0.0695 | 1104 B | 1.00 | | ||
| | 'Custom SHA-512/256 — large (1 MB)' | .NET 9.0 | .NET 9.0 | CustomSHA512_256 | 2,236,045.5 ns | 10,136.27 ns | 9,481.47 ns | 2,232,607.1 ns | 2,224,303.6 ns | 2,255,956.2 ns | 4,955.83 | 1,102.54 | - | 1104 B | 1.00 | | ||
| | 'Built-in SHA-512 truncated -> 256 — small (64 bytes)' | .NET 9.0 | .NET 9.0 | CustomSHA512_256 | 441.4 ns | 9.21 ns | 10.23 ns | 440.7 ns | 422.6 ns | 460.3 ns | 0.98 | 0.22 | 0.0229 | 368 B | 0.33 | | ||
| | 'Built-in SHA-512 truncated -> 256 — large (1 MB)' | .NET 9.0 | .NET 9.0 | CustomSHA512_256 | 1,342,722.2 ns | 16,476.57 ns | 15,412.19 ns | 1,341,708.3 ns | 1,321,103.1 ns | 1,367,723.4 ns | 2,975.92 | 662.81 | - | 369 B | 0.33 | | ||
| | 'Param-based: ComputeHash (selects algorithm by [Params] Variant)' | .NET 9.0 | .NET 9.0 | CustomSHA512_256 | 400.3 ns | 5.96 ns | 5.58 ns | 400.3 ns | 391.5 ns | 412.5 ns | 0.89 | 0.20 | 0.0702 | 1104 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | ||
| | **'Custom SHA-512/256 — small (64 bytes)'** | **.NET 10.0** | **.NET 10.0** | **SHA512_Truncated** | **371.4 ns** | **23.52 ns** | **27.08 ns** | **359.7 ns** | **345.1 ns** | **425.9 ns** | **1.02** | **0.07** | **0.0701** | **1104 B** | **1.00** | | ||
| | 'Custom SHA-512/256 — large (1 MB)' | .NET 10.0 | .NET 10.0 | SHA512_Truncated | 2,208,794.2 ns | 30,979.07 ns | 28,977.85 ns | 2,208,998.2 ns | 2,148,959.8 ns | 2,249,233.9 ns | 6,051.29 | 120.02 | - | 1104 B | 1.00 | | ||
| | 'Built-in SHA-512 truncated -> 256 — small (64 bytes)' | .NET 10.0 | .NET 10.0 | SHA512_Truncated | 427.5 ns | 8.48 ns | 9.08 ns | 424.4 ns | 418.1 ns | 449.6 ns | 1.17 | 0.03 | 0.0224 | 368 B | 0.33 | | ||
| | 'Built-in SHA-512 truncated -> 256 — large (1 MB)' | .NET 10.0 | .NET 10.0 | SHA512_Truncated | 1,343,433.9 ns | 18,287.12 ns | 17,105.78 ns | 1,342,228.6 ns | 1,315,239.6 ns | 1,371,437.5 ns | 3,680.52 | 72.13 | - | 369 B | 0.33 | | ||
| | 'Param-based: ComputeHash (selects algorithm by [Params] Variant)' | .NET 10.0 | .NET 10.0 | SHA512_Truncated | 418.4 ns | 7.87 ns | 6.97 ns | 417.8 ns | 407.8 ns | 434.0 ns | 1.15 | 0.03 | 0.0231 | 368 B | 0.33 | | ||
| | 'Custom SHA-512/256 — small (64 bytes)' | .NET 9.0 | .NET 9.0 | SHA512_Truncated | 365.1 ns | 5.89 ns | 5.78 ns | 364.6 ns | 358.5 ns | 374.9 ns | 1.00 | 0.02 | 0.0693 | 1104 B | 1.00 | | ||
| | 'Custom SHA-512/256 — large (1 MB)' | .NET 9.0 | .NET 9.0 | SHA512_Truncated | 2,159,919.2 ns | 27,489.49 ns | 24,368.72 ns | 2,152,612.9 ns | 2,132,135.2 ns | 2,197,020.3 ns | 5,917.39 | 110.84 | - | 1104 B | 1.00 | | ||
| | 'Built-in SHA-512 truncated -> 256 — small (64 bytes)' | .NET 9.0 | .NET 9.0 | SHA512_Truncated | 443.3 ns | 8.29 ns | 7.75 ns | 442.5 ns | 432.7 ns | 461.5 ns | 1.21 | 0.03 | 0.0233 | 368 B | 0.33 | | ||
| | 'Built-in SHA-512 truncated -> 256 — large (1 MB)' | .NET 9.0 | .NET 9.0 | SHA512_Truncated | 1,352,995.6 ns | 26,185.39 ns | 25,717.56 ns | 1,353,562.5 ns | 1,312,020.6 ns | 1,403,619.0 ns | 3,706.71 | 88.66 | - | 369 B | 0.33 | | ||
| | 'Param-based: ComputeHash (selects algorithm by [Params] Variant)' | .NET 9.0 | .NET 9.0 | SHA512_Truncated | 447.2 ns | 8.90 ns | 8.33 ns | 445.7 ns | 436.6 ns | 466.0 ns | 1.23 | 0.03 | 0.0231 | 368 B | 0.33 | | ||
| | Method | Runtime | Variant | Mean | Error | StdDev | Median | Min | Max | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add blank line before benchmark results table (MD058).
Line 13 (code fence closing) should be followed by a blank line before the table header on line 14.
Apply this fix:
PowerPlanMode=00000000-0000-0000-0000-000000000000 IterationTime=250ms MaxIterationCount=20
MinIterationCount=15 WarmupCount=1
| Method | Runtime | Variant | Mean | Error | StdDev | Median | Min | Max | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio |
<!-- suggestion_start -->
<details>
<summary>📝 Committable suggestion</summary>
> ‼️ **IMPORTANT**
> Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
```suggestion
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
14-14: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
🤖 Prompt for AI Agents
In
reports/tuning/Cuemon.Security.Cryptography.Sha512256Benchmark-report-github.md
around lines 13 to 14, the closing code fence on line 13 is not followed by a
blank line before the Markdown table header on line 14 (MD058); insert a single
blank line between the code fence and the table header so the table is properly
separated from the preceding fenced code block.
| ``` | ||
| BenchmarkDotNet v0.15.6, Windows 11 (10.0.26200.7309) | ||
| BenchmarkDotNet v0.15.6, Windows 11 (10.0.26200.7462) | ||
| 12th Gen Intel Core i9-12900KF 3.20GHz, 1 CPU, 24 logical and 16 physical cores | ||
| .NET SDK 10.0.100 | ||
| [Host] : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v3 | ||
| .NET 10.0 : .NET 10.0.0 (10.0.0, 10.0.25.52411), X64 RyuJIT x86-64-v3 | ||
| .NET 9.0 : .NET 9.0.11 (9.0.11, 9.0.1125.51716), X64 RyuJIT x86-64-v3 | ||
| .NET SDK 10.0.101 | ||
| [Host] : .NET 10.0.1 (10.0.1, 10.0.125.57005), X64 RyuJIT x86-64-v3 | ||
| Job-LDLMHG : .NET 10.0.1 (10.0.1, 10.0.125.57005), X64 RyuJIT x86-64-v3 | ||
| Job-IOAYXE : .NET 9.0.11 (9.0.11, 9.0.1125.51716), X64 RyuJIT x86-64-v3 | ||
| PowerPlanMode=00000000-0000-0000-0000-000000000000 IterationTime=250ms MaxIterationCount=20 | ||
| MinIterationCount=15 WarmupCount=1 | ||
| ``` | ||
| | Method | Job | Runtime | Size | Mean | Error | StdDev | Median | Min | Max | Ratio | RatioSD | Gen0 | Gen1 | Gen2 | Allocated | Alloc Ratio | | ||
| |--------------------------------- |---------- |---------- |-------- |---------------:|--------------:|--------------:|---------------:|---------------:|---------------:|------:|--------:|---------:|---------:|---------:|----------:|------------:| | ||
| | **'CRC32 - byte[]'** | **.NET 10.0** | **.NET 10.0** | **64** | **139.4 ns** | **3.97 ns** | **3.90 ns** | **140.8 ns** | **129.2 ns** | **141.6 ns** | **1.04** | **0.09** | **0.0049** | **-** | **-** | **80 B** | **0.56** | | ||
| | 'CRC64 - byte[]' | .NET 10.0 | .NET 10.0 | 64 | 157.7 ns | 2.53 ns | 2.24 ns | 158.3 ns | 150.0 ns | 158.8 ns | 1.17 | 0.10 | 0.0046 | - | - | 80 B | 0.56 | | ||
| | 'CRC32 - Stream (includes copy)' | .NET 10.0 | .NET 10.0 | 64 | 554.0 ns | 45.22 ns | 52.07 ns | 574.8 ns | 370.3 ns | 599.3 ns | 4.12 | 0.52 | 0.0734 | - | - | 1160 B | 8.06 | | ||
| | 'CRC64 - Stream (includes copy)' | .NET 10.0 | .NET 10.0 | 64 | 539.3 ns | 65.19 ns | 72.46 ns | 568.3 ns | 354.1 ns | 599.7 ns | 4.01 | 0.63 | 0.0726 | - | - | 1160 B | 8.06 | | ||
| | 'CRC32 - byte[]' | .NET 9.0 | .NET 9.0 | 64 | 135.3 ns | 9.02 ns | 10.39 ns | 139.9 ns | 111.4 ns | 142.7 ns | 1.01 | 0.12 | 0.0092 | - | - | 144 B | 1.00 | | ||
| | 'CRC64 - byte[]' | .NET 9.0 | .NET 9.0 | 64 | 152.5 ns | 10.65 ns | 11.84 ns | 157.7 ns | 125.7 ns | 159.6 ns | 1.13 | 0.13 | 0.0091 | - | - | 144 B | 1.00 | | ||
| | 'CRC32 - Stream (includes copy)' | .NET 9.0 | .NET 9.0 | 64 | 532.0 ns | 48.05 ns | 55.33 ns | 551.2 ns | 361.5 ns | 568.8 ns | 3.96 | 0.53 | 0.0775 | - | - | 1224 B | 8.50 | | ||
| | 'CRC64 - Stream (includes copy)' | .NET 9.0 | .NET 9.0 | 64 | 529.2 ns | 64.64 ns | 74.44 ns | 565.1 ns | 372.9 ns | 581.3 ns | 3.94 | 0.64 | 0.0778 | - | - | 1224 B | 8.50 | | ||
| | | | | | | | | | | | | | | | | | | | ||
| | **'CRC32 - byte[]'** | **.NET 10.0** | **.NET 10.0** | **4096** | **7,721.2 ns** | **250.04 ns** | **277.92 ns** | **7,768.4 ns** | **6,967.3 ns** | **7,986.1 ns** | **1.01** | **0.05** | **-** | **-** | **-** | **144 B** | **1.00** | | ||
| | 'CRC64 - byte[]' | .NET 10.0 | .NET 10.0 | 4096 | 8,842.1 ns | 441.50 ns | 508.43 ns | 8,979.8 ns | 7,659.8 ns | 9,423.5 ns | 1.15 | 0.07 | - | - | - | 144 B | 1.00 | | ||
| | 'CRC32 - Stream (includes copy)' | .NET 10.0 | .NET 10.0 | 4096 | 8,938.0 ns | 485.17 ns | 558.72 ns | 9,141.2 ns | 7,730.1 ns | 9,570.1 ns | 1.16 | 0.08 | 0.5614 | - | - | 9097 B | 63.17 | | ||
| | 'CRC64 - Stream (includes copy)' | .NET 10.0 | .NET 10.0 | 4096 | 10,274.8 ns | 494.99 ns | 570.04 ns | 10,440.1 ns | 8,600.8 ns | 10,645.7 ns | 1.34 | 0.08 | 0.5759 | - | - | 9097 B | 63.17 | | ||
| | 'CRC32 - byte[]' | .NET 9.0 | .NET 9.0 | 4096 | 7,690.3 ns | 226.06 ns | 241.88 ns | 7,752.2 ns | 6,976.9 ns | 7,897.0 ns | 1.00 | 0.05 | - | - | - | 144 B | 1.00 | | ||
| | 'CRC64 - byte[]' | .NET 9.0 | .NET 9.0 | 4096 | 8,811.7 ns | 302.74 ns | 348.64 ns | 8,864.9 ns | 7,821.1 ns | 9,119.8 ns | 1.15 | 0.06 | - | - | - | 144 B | 1.00 | | ||
| | 'CRC32 - Stream (includes copy)' | .NET 9.0 | .NET 9.0 | 4096 | 8,635.2 ns | 452.94 ns | 521.60 ns | 8,836.1 ns | 7,652.1 ns | 9,293.9 ns | 1.12 | 0.08 | 0.5690 | - | - | 9097 B | 63.17 | | ||
| | 'CRC64 - Stream (includes copy)' | .NET 9.0 | .NET 9.0 | 4096 | 9,868.1 ns | 570.02 ns | 656.43 ns | 10,164.5 ns | 8,495.0 ns | 10,538.8 ns | 1.28 | 0.09 | 0.5473 | - | - | 9097 B | 63.17 | | ||
| | | | | | | | | | | | | | | | | | | | ||
| | **'CRC32 - byte[]'** | **.NET 10.0** | **.NET 10.0** | **1048576** | **1,922,070.0 ns** | **90,218.05 ns** | **103,895.24 ns** | **1,957,771.9 ns** | **1,783,972.9 ns** | **2,105,766.7 ns** | **1.02** | **0.07** | **-** | **-** | **-** | **146 B** | **1.00** | | ||
| | 'CRC64 - byte[]' | .NET 10.0 | .NET 10.0 | 1048576 | 2,146,272.3 ns | 146,697.64 ns | 168,937.23 ns | 2,228,165.6 ns | 1,940,368.0 ns | 2,367,431.2 ns | 1.13 | 0.10 | - | - | - | 146 B | 1.00 | | ||
| | 'CRC32 - Stream (includes copy)' | .NET 10.0 | .NET 10.0 | 1048576 | 2,285,845.9 ns | 154,426.14 ns | 177,837.38 ns | 2,358,128.5 ns | 2,053,800.0 ns | 2,562,028.1 ns | 1.21 | 0.11 | 484.3750 | 484.3750 | 484.3750 | 2098846 B | 14,375.66 | | ||
| | 'CRC64 - Stream (includes copy)' | .NET 10.0 | .NET 10.0 | 1048576 | 2,551,377.1 ns | 229,852.85 ns | 264,698.88 ns | 2,737,308.5 ns | 2,232,625.9 ns | 2,880,704.5 ns | 1.35 | 0.15 | 482.1429 | 482.1429 | 482.1429 | 2098788 B | 14,375.26 | | ||
| | 'CRC32 - byte[]' | .NET 9.0 | .NET 9.0 | 1048576 | 1,896,976.5 ns | 74,945.23 ns | 86,307.04 ns | 1,957,661.1 ns | 1,754,100.0 ns | 1,982,995.1 ns | 1.00 | 0.06 | - | - | - | 146 B | 1.00 | | ||
| | 'CRC64 - byte[]' | .NET 9.0 | .NET 9.0 | 1048576 | 2,151,235.2 ns | 137,428.43 ns | 158,262.78 ns | 2,240,808.2 ns | 1,965,300.0 ns | 2,401,797.7 ns | 1.14 | 0.10 | - | - | - | 146 B | 1.00 | | ||
| | 'CRC32 - Stream (includes copy)' | .NET 9.0 | .NET 9.0 | 1048576 | 2,273,448.7 ns | 156,886.61 ns | 180,670.86 ns | 2,382,739.5 ns | 2,029,253.9 ns | 2,501,768.8 ns | 1.20 | 0.11 | 492.1875 | 492.1875 | 492.1875 | 2098739 B | 14,374.92 | | ||
| | 'CRC64 - Stream (includes copy)' | .NET 9.0 | .NET 9.0 | 1048576 | 2,515,326.5 ns | 200,435.05 ns | 230,821.30 ns | 2,654,724.1 ns | 2,209,127.7 ns | 2,794,425.9 ns | 1.33 | 0.13 | 482.1429 | 482.1429 | 482.1429 | 2098829 B | 14,375.54 | | ||
| | Method | Runtime | Size | Mean | Error | StdDev | Median | Min | Max | Ratio | RatioSD | Gen0 | Gen1 | Gen2 | Allocated | Alloc Ratio | | ||
| |--------------------------------- |---------- |-------- |---------------:|--------------:|--------------:|---------------:|---------------:|---------------:|------:|--------:|---------:|---------:|---------:|----------:|------------:| | ||
| | **'CRC32 - byte[]'** | **.NET 10.0** | **64** | **130.3 ns** | **2.62 ns** | **2.32 ns** | **130.9 ns** | **125.1 ns** | **133.5 ns** | **1.00** | **0.02** | **0.0047** | **-** | **-** | **80 B** | **1.00** | | ||
| | 'CRC64 - byte[]' | .NET 10.0 | 64 | 145.6 ns | 9.36 ns | 10.02 ns | 149.2 ns | 118.7 ns | 153.6 ns | 1.12 | 0.08 | 0.0048 | - | - | 80 B | 1.00 | | ||
| | 'CRC32 - Stream (includes copy)' | .NET 10.0 | 64 | 477.0 ns | 60.01 ns | 66.70 ns | 510.8 ns | 344.4 ns | 532.4 ns | 3.66 | 0.50 | 0.0734 | - | - | 1160 B | 14.50 | | ||
| | 'CRC64 - Stream (includes copy)' | .NET 10.0 | 64 | 528.0 ns | 39.71 ns | 44.14 ns | 538.1 ns | 355.2 ns | 556.0 ns | 4.05 | 0.34 | 0.0730 | - | - | 1160 B | 14.50 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | 'CRC32 - byte[]' | .NET 9.0 | 64 | 133.8 ns | 8.41 ns | 9.35 ns | 137.9 ns | 115.1 ns | 141.9 ns | 1.01 | 0.10 | 0.0088 | - | - | 144 B | 1.00 | | ||
| | 'CRC64 - byte[]' | .NET 9.0 | 64 | 151.9 ns | 11.29 ns | 12.55 ns | 156.6 ns | 123.3 ns | 163.7 ns | 1.14 | 0.13 | 0.0091 | - | - | 144 B | 1.00 | | ||
| | 'CRC32 - Stream (includes copy)' | .NET 9.0 | 64 | 551.7 ns | 55.11 ns | 61.25 ns | 572.2 ns | 374.8 ns | 582.8 ns | 4.15 | 0.55 | 0.0780 | - | - | 1224 B | 8.50 | | ||
| | 'CRC64 - Stream (includes copy)' | .NET 9.0 | 64 | 562.0 ns | 46.37 ns | 51.54 ns | 578.7 ns | 381.5 ns | 592.8 ns | 4.22 | 0.49 | 0.0776 | - | - | 1224 B | 8.50 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | **'CRC32 - byte[]'** | **.NET 10.0** | **4096** | **7,674.5 ns** | **303.22 ns** | **349.19 ns** | **7,805.6 ns** | **6,911.8 ns** | **8,017.3 ns** | **1.00** | **0.06** | **-** | **-** | **-** | **144 B** | **1.00** | | ||
| | 'CRC64 - byte[]' | .NET 10.0 | 4096 | 8,732.0 ns | 405.92 ns | 467.45 ns | 8,913.0 ns | 7,756.2 ns | 9,127.0 ns | 1.14 | 0.08 | - | - | - | 144 B | 1.00 | | ||
| | 'CRC32 - Stream (includes copy)' | .NET 10.0 | 4096 | 8,820.2 ns | 437.27 ns | 467.87 ns | 8,994.3 ns | 7,895.2 ns | 9,275.9 ns | 1.15 | 0.08 | 0.5731 | - | - | 9097 B | 63.17 | | ||
| | 'CRC64 - Stream (includes copy)' | .NET 10.0 | 4096 | 10,256.9 ns | 310.20 ns | 331.91 ns | 10,332.4 ns | 8,960.0 ns | 10,481.1 ns | 1.34 | 0.08 | 0.5507 | - | - | 9097 B | 63.17 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | 'CRC32 - byte[]' | .NET 9.0 | 4096 | 7,591.4 ns | 210.98 ns | 234.51 ns | 7,679.4 ns | 7,082.8 ns | 7,833.1 ns | 1.00 | 0.04 | - | - | - | 144 B | 1.00 | | ||
| | 'CRC64 - byte[]' | .NET 9.0 | 4096 | 8,608.6 ns | 356.87 ns | 410.97 ns | 8,776.9 ns | 7,672.4 ns | 8,953.5 ns | 1.14 | 0.06 | - | - | - | 144 B | 1.00 | | ||
| | 'CRC32 - Stream (includes copy)' | .NET 9.0 | 4096 | 8,729.4 ns | 376.59 ns | 433.68 ns | 8,902.3 ns | 7,780.1 ns | 9,131.7 ns | 1.15 | 0.07 | 0.5679 | - | - | 9097 B | 63.17 | | ||
| | 'CRC64 - Stream (includes copy)' | .NET 9.0 | 4096 | 9,961.3 ns | 576.34 ns | 663.72 ns | 10,226.3 ns | 8,594.9 ns | 10,468.9 ns | 1.31 | 0.09 | 0.5596 | - | - | 9097 B | 63.17 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | **'CRC32 - byte[]'** | **.NET 10.0** | **1048576** | **1,894,279.7 ns** | **73,259.49 ns** | **84,365.74 ns** | **1,949,685.4 ns** | **1,791,184.7 ns** | **2,011,222.2 ns** | **1.00** | **0.06** | **-** | **-** | **-** | **146 B** | **1.00** | | ||
| | 'CRC64 - byte[]' | .NET 10.0 | 1048576 | 2,153,042.5 ns | 143,482.20 ns | 165,234.31 ns | 2,273,582.8 ns | 1,949,604.7 ns | 2,356,104.7 ns | 1.14 | 0.10 | - | - | - | 146 B | 1.00 | | ||
| | 'CRC32 - Stream (includes copy)' | .NET 10.0 | 1048576 | 2,291,520.1 ns | 131,277.22 ns | 151,179.04 ns | 2,338,500.4 ns | 2,088,157.8 ns | 2,498,143.8 ns | 1.21 | 0.09 | 492.1875 | 492.1875 | 492.1875 | 2098726 B | 14,374.84 | | ||
| | 'CRC64 - Stream (includes copy)' | .NET 10.0 | 1048576 | 2,597,815.7 ns | 224,464.89 ns | 258,494.10 ns | 2,731,051.8 ns | 2,269,867.0 ns | 2,997,155.4 ns | 1.37 | 0.15 | 491.0714 | 491.0714 | 491.0714 | 2098727 B | 14,374.84 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | 'CRC32 - byte[]' | .NET 9.0 | 1048576 | 1,896,952.9 ns | 87,432.83 ns | 100,687.77 ns | 1,955,672.2 ns | 1,776,170.1 ns | 2,043,593.8 ns | 1.00 | 0.07 | - | - | - | 146 B | 1.00 | | ||
| | 'CRC64 - byte[]' | .NET 9.0 | 1048576 | 2,125,733.9 ns | 118,668.41 ns | 136,658.71 ns | 2,232,564.5 ns | 1,957,495.3 ns | 2,273,230.5 ns | 1.12 | 0.09 | - | - | - | 146 B | 1.00 | | ||
| | 'CRC32 - Stream (includes copy)' | .NET 9.0 | 1048576 | 2,295,005.1 ns | 121,755.84 ns | 140,214.21 ns | 2,376,793.8 ns | 2,108,349.6 ns | 2,462,720.7 ns | 1.21 | 0.10 | 492.1875 | 492.1875 | 492.1875 | 2098683 B | 14,374.54 | | ||
| | 'CRC64 - Stream (includes copy)' | .NET 9.0 | 1048576 | 2,537,927.8 ns | 167,381.32 ns | 192,756.58 ns | 2,674,733.9 ns | 2,288,633.0 ns | 2,759,531.2 ns | 1.34 | 0.12 | 491.0714 | 491.0714 | 491.0714 | 2098692 B | 14,374.60 | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Find all benchmark report files in reports/tuning directory
find reports/tuning -type f -name "*.md" | sort | while read file; do
echo "File: $(basename "$file")"
# Extract the table header row (line starting with |)
table_header=$(grep "^|" "$file" | head -1)
if [ -n "$table_header" ]; then
# Count columns by counting pipe separators
col_count=$(echo "$table_header" | awk -F'|' '{print NF-2}')
echo "Column count: $col_count"
echo "Header: $table_header"
else
echo "No table header found"
fi
echo ""
doneRepository: codebeltnet/cuemon
Length of output: 2290
Benchmark report table schemas are inconsistent across the PR.
This report includes 16 columns (the most comprehensive), while other reports use 11–14 columns with varying metrics. Standardize the benchmark report format across all reports for consistency and maintainability.
🤖 Prompt for AI Agents
reports/tuning/Cuemon.Security.CyclicRedundancyCheckBenchmark-report-github.md
lines 1 to 44: The reported benchmark table uses 16 columns while other reports
use 11–14 columns, causing inconsistent schemas; update this file to match the
project's standard table schema by removing or consolidating columns so the
column count and headers align with the agreed canonical benchmark report format
(e.g., pick the agreed set of metrics such as Method, Runtime, Size, Mean,
Error, StdDev, Median, Allocated and Ratio or the project-approved header list),
ensure column ordering and header names match other reports, and regenerate or
reformat the table rows to conform to that schema.
| ``` | ||
| | Method | Job | Runtime | Size | Mean | Error | StdDev | Median | Min | Max | Ratio | RatioSD | Gen0 | Gen1 | Gen2 | Allocated | Alloc Ratio | | ||
| |--------------------------------- |---------- |---------- |-------- |---------------:|--------------:|--------------:|---------------:|---------------:|---------------:|------:|--------:|---------:|---------:|---------:|----------:|------------:| | ||
| | **'CRC32 - byte[]'** | **.NET 10.0** | **.NET 10.0** | **64** | **139.4 ns** | **3.97 ns** | **3.90 ns** | **140.8 ns** | **129.2 ns** | **141.6 ns** | **1.04** | **0.09** | **0.0049** | **-** | **-** | **80 B** | **0.56** | | ||
| | 'CRC64 - byte[]' | .NET 10.0 | .NET 10.0 | 64 | 157.7 ns | 2.53 ns | 2.24 ns | 158.3 ns | 150.0 ns | 158.8 ns | 1.17 | 0.10 | 0.0046 | - | - | 80 B | 0.56 | | ||
| | 'CRC32 - Stream (includes copy)' | .NET 10.0 | .NET 10.0 | 64 | 554.0 ns | 45.22 ns | 52.07 ns | 574.8 ns | 370.3 ns | 599.3 ns | 4.12 | 0.52 | 0.0734 | - | - | 1160 B | 8.06 | | ||
| | 'CRC64 - Stream (includes copy)' | .NET 10.0 | .NET 10.0 | 64 | 539.3 ns | 65.19 ns | 72.46 ns | 568.3 ns | 354.1 ns | 599.7 ns | 4.01 | 0.63 | 0.0726 | - | - | 1160 B | 8.06 | | ||
| | 'CRC32 - byte[]' | .NET 9.0 | .NET 9.0 | 64 | 135.3 ns | 9.02 ns | 10.39 ns | 139.9 ns | 111.4 ns | 142.7 ns | 1.01 | 0.12 | 0.0092 | - | - | 144 B | 1.00 | | ||
| | 'CRC64 - byte[]' | .NET 9.0 | .NET 9.0 | 64 | 152.5 ns | 10.65 ns | 11.84 ns | 157.7 ns | 125.7 ns | 159.6 ns | 1.13 | 0.13 | 0.0091 | - | - | 144 B | 1.00 | | ||
| | 'CRC32 - Stream (includes copy)' | .NET 9.0 | .NET 9.0 | 64 | 532.0 ns | 48.05 ns | 55.33 ns | 551.2 ns | 361.5 ns | 568.8 ns | 3.96 | 0.53 | 0.0775 | - | - | 1224 B | 8.50 | | ||
| | 'CRC64 - Stream (includes copy)' | .NET 9.0 | .NET 9.0 | 64 | 529.2 ns | 64.64 ns | 74.44 ns | 565.1 ns | 372.9 ns | 581.3 ns | 3.94 | 0.64 | 0.0778 | - | - | 1224 B | 8.50 | | ||
| | | | | | | | | | | | | | | | | | | | ||
| | **'CRC32 - byte[]'** | **.NET 10.0** | **.NET 10.0** | **4096** | **7,721.2 ns** | **250.04 ns** | **277.92 ns** | **7,768.4 ns** | **6,967.3 ns** | **7,986.1 ns** | **1.01** | **0.05** | **-** | **-** | **-** | **144 B** | **1.00** | | ||
| | 'CRC64 - byte[]' | .NET 10.0 | .NET 10.0 | 4096 | 8,842.1 ns | 441.50 ns | 508.43 ns | 8,979.8 ns | 7,659.8 ns | 9,423.5 ns | 1.15 | 0.07 | - | - | - | 144 B | 1.00 | | ||
| | 'CRC32 - Stream (includes copy)' | .NET 10.0 | .NET 10.0 | 4096 | 8,938.0 ns | 485.17 ns | 558.72 ns | 9,141.2 ns | 7,730.1 ns | 9,570.1 ns | 1.16 | 0.08 | 0.5614 | - | - | 9097 B | 63.17 | | ||
| | 'CRC64 - Stream (includes copy)' | .NET 10.0 | .NET 10.0 | 4096 | 10,274.8 ns | 494.99 ns | 570.04 ns | 10,440.1 ns | 8,600.8 ns | 10,645.7 ns | 1.34 | 0.08 | 0.5759 | - | - | 9097 B | 63.17 | | ||
| | 'CRC32 - byte[]' | .NET 9.0 | .NET 9.0 | 4096 | 7,690.3 ns | 226.06 ns | 241.88 ns | 7,752.2 ns | 6,976.9 ns | 7,897.0 ns | 1.00 | 0.05 | - | - | - | 144 B | 1.00 | | ||
| | 'CRC64 - byte[]' | .NET 9.0 | .NET 9.0 | 4096 | 8,811.7 ns | 302.74 ns | 348.64 ns | 8,864.9 ns | 7,821.1 ns | 9,119.8 ns | 1.15 | 0.06 | - | - | - | 144 B | 1.00 | | ||
| | 'CRC32 - Stream (includes copy)' | .NET 9.0 | .NET 9.0 | 4096 | 8,635.2 ns | 452.94 ns | 521.60 ns | 8,836.1 ns | 7,652.1 ns | 9,293.9 ns | 1.12 | 0.08 | 0.5690 | - | - | 9097 B | 63.17 | | ||
| | 'CRC64 - Stream (includes copy)' | .NET 9.0 | .NET 9.0 | 4096 | 9,868.1 ns | 570.02 ns | 656.43 ns | 10,164.5 ns | 8,495.0 ns | 10,538.8 ns | 1.28 | 0.09 | 0.5473 | - | - | 9097 B | 63.17 | | ||
| | | | | | | | | | | | | | | | | | | | ||
| | **'CRC32 - byte[]'** | **.NET 10.0** | **.NET 10.0** | **1048576** | **1,922,070.0 ns** | **90,218.05 ns** | **103,895.24 ns** | **1,957,771.9 ns** | **1,783,972.9 ns** | **2,105,766.7 ns** | **1.02** | **0.07** | **-** | **-** | **-** | **146 B** | **1.00** | | ||
| | 'CRC64 - byte[]' | .NET 10.0 | .NET 10.0 | 1048576 | 2,146,272.3 ns | 146,697.64 ns | 168,937.23 ns | 2,228,165.6 ns | 1,940,368.0 ns | 2,367,431.2 ns | 1.13 | 0.10 | - | - | - | 146 B | 1.00 | | ||
| | 'CRC32 - Stream (includes copy)' | .NET 10.0 | .NET 10.0 | 1048576 | 2,285,845.9 ns | 154,426.14 ns | 177,837.38 ns | 2,358,128.5 ns | 2,053,800.0 ns | 2,562,028.1 ns | 1.21 | 0.11 | 484.3750 | 484.3750 | 484.3750 | 2098846 B | 14,375.66 | | ||
| | 'CRC64 - Stream (includes copy)' | .NET 10.0 | .NET 10.0 | 1048576 | 2,551,377.1 ns | 229,852.85 ns | 264,698.88 ns | 2,737,308.5 ns | 2,232,625.9 ns | 2,880,704.5 ns | 1.35 | 0.15 | 482.1429 | 482.1429 | 482.1429 | 2098788 B | 14,375.26 | | ||
| | 'CRC32 - byte[]' | .NET 9.0 | .NET 9.0 | 1048576 | 1,896,976.5 ns | 74,945.23 ns | 86,307.04 ns | 1,957,661.1 ns | 1,754,100.0 ns | 1,982,995.1 ns | 1.00 | 0.06 | - | - | - | 146 B | 1.00 | | ||
| | 'CRC64 - byte[]' | .NET 9.0 | .NET 9.0 | 1048576 | 2,151,235.2 ns | 137,428.43 ns | 158,262.78 ns | 2,240,808.2 ns | 1,965,300.0 ns | 2,401,797.7 ns | 1.14 | 0.10 | - | - | - | 146 B | 1.00 | | ||
| | 'CRC32 - Stream (includes copy)' | .NET 9.0 | .NET 9.0 | 1048576 | 2,273,448.7 ns | 156,886.61 ns | 180,670.86 ns | 2,382,739.5 ns | 2,029,253.9 ns | 2,501,768.8 ns | 1.20 | 0.11 | 492.1875 | 492.1875 | 492.1875 | 2098739 B | 14,374.92 | | ||
| | 'CRC64 - Stream (includes copy)' | .NET 9.0 | .NET 9.0 | 1048576 | 2,515,326.5 ns | 200,435.05 ns | 230,821.30 ns | 2,654,724.1 ns | 2,209,127.7 ns | 2,794,425.9 ns | 1.33 | 0.13 | 482.1429 | 482.1429 | 482.1429 | 2098829 B | 14,375.54 | | ||
| | Method | Runtime | Size | Mean | Error | StdDev | Median | Min | Max | Ratio | RatioSD | Gen0 | Gen1 | Gen2 | Allocated | Alloc Ratio | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add blank line before benchmark results table (MD058).
Line 13 (code fence closing) should be followed by a blank line before the table header on line 14.
Apply this fix:
PowerPlanMode=00000000-0000-0000-0000-000000000000 IterationTime=250ms MaxIterationCount=20
MinIterationCount=15 WarmupCount=1
| Method | Runtime | Size | Mean | Error | StdDev | Median | Min | Max | Ratio | RatioSD | Gen0 | Gen1 | Gen2 | Allocated | Alloc Ratio |
<!-- suggestion_start -->
<details>
<summary>📝 Committable suggestion</summary>
> ‼️ **IMPORTANT**
> Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
```suggestion
🤖 Prompt for AI Agents
In
reports/tuning/Cuemon.Security.CyclicRedundancyCheckBenchmark-report-github.md
around lines 13 to 14, the closing code fence on line 13 must be followed by a
blank line before the Markdown table header on line 14 to satisfy MD058; insert
a single empty line between the code fence and the table header so the table is
recognized correctly.
| ``` | ||
| | Method | Job | Runtime | Algorithm | Mean | Error | StdDev | Median | Min | Max | Ratio | RatioSD | Gen0 | Allocated | Alloc Ratio | | ||
| |-------------------------- |---------- |---------- |---------- |------------------:|------------------:|------------------:|------------------:|------------------:|------------------:|------:|--------:|-------:|----------:|------------:| | ||
| | **'ComputeHash32 (small)'** | **.NET 10.0** | **.NET 10.0** | **Fnv1** | **44.49 ns** | **0.960 ns** | **1.028 ns** | **44.50 ns** | **41.78 ns** | **46.69 ns** | **0.98** | **0.03** | **0.0035** | **56 B** | **1.00** | | ||
| | 'ComputeHash32 (small)' | .NET 9.0 | .NET 9.0 | Fnv1 | 45.27 ns | 0.657 ns | 0.583 ns | 45.11 ns | 44.32 ns | 46.26 ns | 1.00 | 0.02 | 0.0035 | 56 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | ||
| | 'ComputeHash32 (large)' | .NET 10.0 | .NET 10.0 | Fnv1 | 475,761.25 ns | 12,785.402 ns | 13,680.237 ns | 479,767.99 ns | 434,213.64 ns | 488,995.83 ns | 0.98 | 0.03 | - | 56 B | 1.00 | | ||
| | 'ComputeHash32 (large)' | .NET 9.0 | .NET 9.0 | Fnv1 | 487,741.70 ns | 6,913.366 ns | 6,466.767 ns | 485,802.84 ns | 479,649.24 ns | 503,178.60 ns | 1.00 | 0.02 | - | 56 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | ||
| | 'ComputeHash64 (small)' | .NET 10.0 | .NET 10.0 | Fnv1 | 61.62 ns | 1.259 ns | 1.178 ns | 61.33 ns | 59.84 ns | 63.93 ns | 1.11 | 0.33 | 0.0034 | 56 B | 1.00 | | ||
| | 'ComputeHash64 (small)' | .NET 9.0 | .NET 9.0 | Fnv1 | 57.90 ns | 8.583 ns | 9.183 ns | 60.78 ns | 25.57 ns | 63.32 ns | 1.05 | 0.35 | 0.0034 | 56 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | ||
| | 'ComputeHash64 (large)' | .NET 10.0 | .NET 10.0 | Fnv1 | 700,133.50 ns | 6,687.106 ns | 5,927.945 ns | 698,258.56 ns | 693,839.81 ns | 712,956.93 ns | 1.00 | 0.02 | - | 56 B | 1.00 | | ||
| | 'ComputeHash64 (large)' | .NET 9.0 | .NET 9.0 | Fnv1 | 702,394.36 ns | 11,875.872 ns | 11,108.698 ns | 702,286.08 ns | 674,915.34 ns | 718,671.31 ns | 1.00 | 0.02 | - | 56 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | ||
| | 'ComputeHash128 (small)' | .NET 10.0 | .NET 10.0 | Fnv1 | 1,014.18 ns | 16.251 ns | 14.406 ns | 1,017.40 ns | 976.62 ns | 1,030.23 ns | 0.92 | 0.02 | 0.0120 | 192 B | 0.75 | | ||
| | 'ComputeHash128 (small)' | .NET 9.0 | .NET 9.0 | Fnv1 | 1,096.77 ns | 11.682 ns | 10.356 ns | 1,093.03 ns | 1,085.03 ns | 1,121.10 ns | 1.00 | 0.01 | 0.0132 | 256 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | ||
| | 'ComputeHash128 (large)' | .NET 10.0 | .NET 10.0 | Fnv1 | 9,491,544.42 ns | 410,672.854 ns | 456,461.789 ns | 9,629,732.00 ns | 7,879,044.00 ns | 9,805,012.00 ns | 0.93 | 0.08 | - | 201 B | 0.76 | | ||
| | 'ComputeHash128 (large)' | .NET 9.0 | .NET 9.0 | Fnv1 | 10,297,469.17 ns | 543,543.911 ns | 625,945.977 ns | 10,479,429.17 ns | 8,199,195.83 ns | 10,764,233.33 ns | 1.00 | 0.09 | - | 265 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | ||
| | 'ComputeHash256 (small)' | .NET 10.0 | .NET 10.0 | Fnv1 | 2,408.15 ns | 98.561 ns | 113.503 ns | 2,404.36 ns | 1,968.61 ns | 2,539.86 ns | 1.00 | 0.05 | 0.0086 | 240 B | 0.79 | | ||
| | 'ComputeHash256 (small)' | .NET 9.0 | .NET 9.0 | Fnv1 | 2,407.95 ns | 39.906 ns | 33.323 ns | 2,401.07 ns | 2,357.00 ns | 2,493.70 ns | 1.00 | 0.02 | 0.0187 | 304 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | ||
| | 'ComputeHash256 (large)' | .NET 10.0 | .NET 10.0 | Fnv1 | 23,361,921.67 ns | 343,325.153 ns | 321,146.561 ns | 23,236,800.00 ns | 23,022,750.00 ns | 24,182,875.00 ns | 1.09 | 0.25 | - | 296 B | 0.83 | | ||
| | 'ComputeHash256 (large)' | .NET 9.0 | .NET 9.0 | Fnv1 | 22,088,434.21 ns | 2,983,730.504 ns | 3,316,408.550 ns | 23,243,050.00 ns | 11,580,200.00 ns | 25,254,625.00 ns | 1.03 | 0.28 | - | 358 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | ||
| | 'ComputeHash512 (small)' | .NET 10.0 | .NET 10.0 | Fnv1 | 7,310.60 ns | 288.216 ns | 320.351 ns | 7,380.94 ns | 6,126.43 ns | 7,567.07 ns | 1.01 | 0.07 | - | 336 B | 0.84 | | ||
| | 'ComputeHash512 (small)' | .NET 9.0 | .NET 9.0 | Fnv1 | 7,284.33 ns | 371.306 ns | 381.304 ns | 7,434.16 ns | 6,262.40 ns | 7,614.62 ns | 1.00 | 0.08 | - | 400 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | ||
| | 'ComputeHash512 (large)' | .NET 10.0 | .NET 10.0 | Fnv1 | 72,438,354.17 ns | 2,328,745.921 ns | 2,491,732.047 ns | 72,952,287.50 ns | 64,311,150.00 ns | 75,007,950.00 ns | 1.00 | 0.05 | - | 392 B | 0.86 | | ||
| | 'ComputeHash512 (large)' | .NET 9.0 | .NET 9.0 | Fnv1 | 72,777,940.79 ns | 2,378,159.721 ns | 2,643,318.229 ns | 73,390,775.00 ns | 64,024,825.00 ns | 74,868,275.00 ns | 1.00 | 0.05 | - | 454 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | ||
| | 'ComputeHash1024 (small)' | .NET 10.0 | .NET 10.0 | Fnv1 | 21,839.16 ns | 607.793 ns | 650.332 ns | 22,048.48 ns | 19,799.26 ns | 22,404.92 ns | 0.97 | 0.06 | - | 528 B | 0.89 | | ||
| | 'ComputeHash1024 (small)' | .NET 9.0 | .NET 9.0 | Fnv1 | 22,499.04 ns | 839.987 ns | 967.331 ns | 22,631.62 ns | 18,620.93 ns | 23,350.81 ns | 1.00 | 0.06 | - | 592 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | ||
| | 'ComputeHash1024 (large)' | .NET 10.0 | .NET 10.0 | Fnv1 | 293,379,305.88 ns | 5,519,217.527 ns | 5,667,830.054 ns | 294,238,400.00 ns | 278,105,900.00 ns | 299,262,000.00 ns | 1.09 | 0.02 | - | 752 B | 0.93 | | ||
| | 'ComputeHash1024 (large)' | .NET 9.0 | .NET 9.0 | Fnv1 | 268,643,542.86 ns | 2,198,007.588 ns | 1,948,476.476 ns | 268,287,600.00 ns | 266,328,900.00 ns | 272,958,100.00 ns | 1.00 | 0.01 | - | 808 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | ||
| | **'ComputeHash32 (small)'** | **.NET 10.0** | **.NET 10.0** | **Fnv1a** | **44.13 ns** | **1.764 ns** | **1.888 ns** | **44.35 ns** | **37.26 ns** | **46.31 ns** | **1.01** | **0.05** | **0.0035** | **56 B** | **1.00** | | ||
| | 'ComputeHash32 (small)' | .NET 9.0 | .NET 9.0 | Fnv1a | 43.83 ns | 0.904 ns | 0.929 ns | 43.80 ns | 41.79 ns | 45.41 ns | 1.00 | 0.03 | 0.0035 | 56 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | ||
| | 'ComputeHash32 (large)' | .NET 10.0 | .NET 10.0 | Fnv1a | 484,862.53 ns | 7,613.077 ns | 6,357.264 ns | 486,333.59 ns | 464,753.71 ns | 490,745.51 ns | 1.00 | 0.01 | - | 56 B | 1.00 | | ||
| | 'ComputeHash32 (large)' | .NET 9.0 | .NET 9.0 | Fnv1a | 486,370.96 ns | 1,899.973 ns | 1,483.374 ns | 486,302.73 ns | 484,818.36 ns | 489,958.79 ns | 1.00 | 0.00 | - | 56 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | ||
| | 'ComputeHash64 (small)' | .NET 10.0 | .NET 10.0 | Fnv1a | 61.73 ns | 1.143 ns | 1.069 ns | 61.48 ns | 60.07 ns | 63.70 ns | 1.01 | 0.09 | 0.0035 | 56 B | 1.00 | | ||
| | 'ComputeHash64 (small)' | .NET 9.0 | .NET 9.0 | Fnv1a | 61.44 ns | 4.144 ns | 4.772 ns | 62.61 ns | 47.59 ns | 66.51 ns | 1.01 | 0.12 | 0.0035 | 56 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | ||
| | 'ComputeHash64 (large)' | .NET 10.0 | .NET 10.0 | Fnv1a | 691,714.33 ns | 59,489.249 ns | 63,652.830 ns | 709,552.98 ns | 513,634.38 ns | 729,552.56 ns | 0.97 | 0.09 | - | 56 B | 1.00 | | ||
| | 'ComputeHash64 (large)' | .NET 9.0 | .NET 9.0 | Fnv1a | 713,994.81 ns | 9,296.636 ns | 8,696.079 ns | 711,014.49 ns | 702,122.73 ns | 730,892.90 ns | 1.00 | 0.02 | - | 56 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | ||
| | 'ComputeHash128 (small)' | .NET 10.0 | .NET 10.0 | Fnv1a | 992.60 ns | 60.035 ns | 69.136 ns | 1,020.09 ns | 783.62 ns | 1,041.29 ns | 0.90 | 0.06 | 0.0082 | 192 B | 0.75 | | ||
| | 'ComputeHash128 (small)' | .NET 9.0 | .NET 9.0 | Fnv1a | 1,099.42 ns | 13.869 ns | 12.973 ns | 1,095.27 ns | 1,086.14 ns | 1,125.26 ns | 1.00 | 0.02 | 0.0132 | 256 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | ||
| | 'ComputeHash128 (large)' | .NET 10.0 | .NET 10.0 | Fnv1a | 9,425,976.73 ns | 705,042.362 ns | 811,927.833 ns | 9,673,563.46 ns | 6,381,980.77 ns | 9,848,542.31 ns | 0.93 | 0.09 | - | 201 B | 0.76 | | ||
| | 'ComputeHash128 (large)' | .NET 9.0 | .NET 9.0 | Fnv1a | 10,174,929.17 ns | 458,639.419 ns | 470,988.916 ns | 10,264,316.67 ns | 8,371,045.83 ns | 10,497,000.00 ns | 1.00 | 0.07 | - | 265 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | ||
| | 'ComputeHash256 (small)' | .NET 10.0 | .NET 10.0 | Fnv1a | 2,434.92 ns | 47.154 ns | 52.411 ns | 2,413.43 ns | 2,308.16 ns | 2,540.21 ns | 1.01 | 0.02 | 0.0096 | 240 B | 0.79 | | ||
| | 'ComputeHash256 (small)' | .NET 9.0 | .NET 9.0 | Fnv1a | 2,410.69 ns | 24.274 ns | 20.270 ns | 2,405.62 ns | 2,389.81 ns | 2,467.03 ns | 1.00 | 0.01 | 0.0193 | 304 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | ||
| | 'ComputeHash256 (large)' | .NET 10.0 | .NET 10.0 | Fnv1a | 23,223,505.56 ns | 953,208.733 ns | 1,019,922.665 ns | 23,494,662.50 ns | 20,199,400.00 ns | 24,015,300.00 ns | 0.92 | 0.06 | - | 296 B | 0.83 | | ||
| | 'ComputeHash256 (large)' | .NET 9.0 | .NET 9.0 | Fnv1a | 25,412,497.50 ns | 1,005,989.704 ns | 1,158,499.239 ns | 25,560,937.50 ns | 23,667,600.00 ns | 27,531,950.00 ns | 1.00 | 0.06 | - | 358 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | ||
| | 'ComputeHash512 (small)' | .NET 10.0 | .NET 10.0 | Fnv1a | 7,378.49 ns | 245.488 ns | 282.705 ns | 7,369.34 ns | 6,265.74 ns | 7,630.78 ns | 0.99 | 0.04 | - | 336 B | 0.84 | | ||
| | 'ComputeHash512 (small)' | .NET 9.0 | .NET 9.0 | Fnv1a | 7,460.73 ns | 89.626 ns | 83.836 ns | 7,445.17 ns | 7,326.61 ns | 7,666.13 ns | 1.00 | 0.02 | - | 400 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | ||
| | 'ComputeHash512 (large)' | .NET 10.0 | .NET 10.0 | Fnv1a | 74,070,804.41 ns | 1,476,981.807 ns | 1,516,751.574 ns | 74,301,275.00 ns | 71,446,950.00 ns | 76,544,125.00 ns | 1.01 | 0.04 | - | 392 B | 0.86 | | ||
| | 'ComputeHash512 (large)' | .NET 9.0 | .NET 9.0 | Fnv1a | 73,099,323.68 ns | 2,326,454.946 ns | 2,585,848.509 ns | 73,528,900.00 ns | 62,658,075.00 ns | 75,058,700.00 ns | 1.00 | 0.05 | - | 454 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | ||
| | 'ComputeHash1024 (small)' | .NET 10.0 | .NET 10.0 | Fnv1a | 21,997.89 ns | 679.030 ns | 781.971 ns | 22,104.69 ns | 19,033.40 ns | 22,638.99 ns | 1.01 | 0.09 | - | 528 B | 0.89 | | ||
| | 'ComputeHash1024 (small)' | .NET 9.0 | .NET 9.0 | Fnv1a | 21,927.44 ns | 1,573.783 ns | 1,616.159 ns | 22,637.87 ns | 18,012.92 ns | 22,987.92 ns | 1.01 | 0.11 | - | 592 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | ||
| | 'ComputeHash1024 (large)' | .NET 10.0 | .NET 10.0 | Fnv1a | 290,670,140.00 ns | 11,015,382.219 ns | 12,685,330.548 ns | 292,789,800.00 ns | 251,227,700.00 ns | 301,504,900.00 ns | 1.13 | 0.23 | - | 752 B | 0.93 | | ||
| | 'ComputeHash1024 (large)' | .NET 9.0 | .NET 9.0 | Fnv1a | 261,996,177.78 ns | 28,627,002.702 ns | 30,630,572.191 ns | 270,939,850.00 ns | 142,795,000.00 ns | 274,029,300.00 ns | 1.02 | 0.23 | - | 808 B | 1.00 | | ||
| | Method | Runtime | Algorithm | Mean | Error | StdDev | Median | Min | Max | Gen0 | Allocated | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add blank line before benchmark results table (MD058).
Line 13 (code fence closing) should be followed by a blank line before the table header on line 14 to comply with markdown formatting standards.
Apply this fix:
PowerPlanMode=00000000-0000-0000-0000-000000000000 IterationTime=250ms MaxIterationCount=20
MinIterationCount=15 WarmupCount=1
| Method | Runtime | Algorithm | Mean | Error | StdDev | Median | Min | Max | Gen0 | Allocated |
<!-- suggestion_start -->
<details>
<summary>📝 Committable suggestion</summary>
> ‼️ **IMPORTANT**
> Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
```suggestion
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
14-14: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
🤖 Prompt for AI Agents
In reports/tuning/Cuemon.Security.FowlerNollVoHashBenchmark-report-github.md
around lines 13 to 14, the closing code fence on line 13 must be followed by a
single blank line before the table header on line 14 to satisfy MD058; insert
one empty line between the fenced code block end and the table header so the
table is separated from the code fence.
| ``` | ||
| | Method | Job | Runtime | Size | Mean | Error | StdDev | Median | Min | Max | Ratio | RatioSD | Gen0 | Gen1 | Allocated | Alloc Ratio | | ||
| |------------------------------------ |---------- |---------- |----- |---------------:|--------------:|--------------:|---------------:|---------------:|---------------:|------:|--------:|-------:|-------:|----------:|------------:| | ||
| | **'HashResult.GetBytes - copy bytes'** | **.NET 10.0** | **.NET 10.0** | **0** | **0.1899 ns** | **0.1607 ns** | **0.1850 ns** | **0.1019 ns** | **0.0000 ns** | **0.4901 ns** | **0.32** | **0.30** | **-** | **-** | **-** | **NA** | | ||
| | 'HashResult.GetBytes - copy bytes' | .NET 9.0 | .NET 9.0 | 0 | 0.6050 ns | 0.0575 ns | 0.0538 ns | 0.5937 ns | 0.5139 ns | 0.6962 ns | 1.01 | 0.12 | - | - | - | NA | | ||
| | | | | | | | | | | | | | | | | | | ||
| | HashResult.ToHexadecimalString | .NET 10.0 | .NET 10.0 | 0 | 4.3974 ns | 0.1999 ns | 0.2222 ns | 4.4440 ns | 4.0578 ns | 4.9124 ns | 0.78 | 0.04 | - | - | - | NA | | ||
| | HashResult.ToHexadecimalString | .NET 9.0 | .NET 9.0 | 0 | 5.6316 ns | 0.1368 ns | 0.1279 ns | 5.5889 ns | 5.5085 ns | 5.9739 ns | 1.00 | 0.03 | - | - | - | NA | | ||
| | | | | | | | | | | | | | | | | | | ||
| | HashResult.ToBase64String | .NET 10.0 | .NET 10.0 | 0 | 0.7507 ns | 0.0206 ns | 0.0182 ns | 0.7490 ns | 0.7177 ns | 0.7800 ns | 0.60 | 0.04 | - | - | - | NA | | ||
| | HashResult.ToBase64String | .NET 9.0 | .NET 9.0 | 0 | 1.2622 ns | 0.0789 ns | 0.0810 ns | 1.2306 ns | 1.1764 ns | 1.4189 ns | 1.00 | 0.09 | - | - | - | NA | | ||
| | | | | | | | | | | | | | | | | | | ||
| | HashResult.ToUrlEncodedBase64String | .NET 10.0 | .NET 10.0 | 0 | 7.9269 ns | 0.2077 ns | 0.2133 ns | 7.8810 ns | 7.5153 ns | 8.2935 ns | 0.75 | 0.03 | 0.0020 | - | 32 B | 1.00 | | ||
| | HashResult.ToUrlEncodedBase64String | .NET 9.0 | .NET 9.0 | 0 | 10.6080 ns | 0.2623 ns | 0.2694 ns | 10.6551 ns | 10.2409 ns | 11.1723 ns | 1.00 | 0.03 | 0.0020 | - | 32 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | HashResult.ToBinaryString | .NET 10.0 | .NET 10.0 | 0 | 2.3159 ns | 0.0532 ns | 0.0444 ns | 2.3027 ns | 2.2691 ns | 2.4234 ns | 0.28 | 0.01 | - | - | - | NA | | ||
| | HashResult.ToBinaryString | .NET 9.0 | .NET 9.0 | 0 | 8.2501 ns | 0.2058 ns | 0.1925 ns | 8.2087 ns | 8.0026 ns | 8.5642 ns | 1.00 | 0.03 | - | - | - | NA | | ||
| | | | | | | | | | | | | | | | | | | ||
| | 'HashResult.To<string> (converter)' | .NET 10.0 | .NET 10.0 | 0 | 1.4854 ns | 0.0419 ns | 0.0371 ns | 1.4837 ns | 1.4305 ns | 1.5463 ns | 0.77 | 0.03 | - | - | - | NA | | ||
| | 'HashResult.To<string> (converter)' | .NET 9.0 | .NET 9.0 | 0 | 1.9255 ns | 0.0500 ns | 0.0468 ns | 1.9154 ns | 1.8678 ns | 2.0306 ns | 1.00 | 0.03 | - | - | - | NA | | ||
| | | | | | | | | | | | | | | | | | | ||
| | **'HashResult.GetBytes - copy bytes'** | **.NET 10.0** | **.NET 10.0** | **8** | **3.6698 ns** | **0.1523 ns** | **0.1693 ns** | **3.6968 ns** | **3.3961 ns** | **3.9878 ns** | **0.70** | **0.08** | **0.0020** | **-** | **32 B** | **1.00** | | ||
| | 'HashResult.GetBytes - copy bytes' | .NET 9.0 | .NET 9.0 | 8 | 5.3099 ns | 0.4813 ns | 0.5543 ns | 5.1356 ns | 4.6109 ns | 6.0498 ns | 1.01 | 0.15 | 0.0020 | - | 32 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | HashResult.ToHexadecimalString | .NET 10.0 | .NET 10.0 | 8 | 18.8266 ns | 0.4924 ns | 0.5268 ns | 18.7881 ns | 17.9686 ns | 19.7976 ns | 0.77 | 0.06 | 0.0071 | - | 112 B | 1.00 | | ||
| | HashResult.ToHexadecimalString | .NET 9.0 | .NET 9.0 | 8 | 24.4800 ns | 1.5941 ns | 1.8358 ns | 24.5886 ns | 21.8618 ns | 29.1413 ns | 1.01 | 0.10 | 0.0071 | - | 112 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | HashResult.ToBase64String | .NET 10.0 | .NET 10.0 | 8 | 8.9394 ns | 0.2436 ns | 0.2501 ns | 8.9677 ns | 8.5694 ns | 9.2560 ns | 0.83 | 0.04 | 0.0031 | - | 48 B | 1.00 | | ||
| | HashResult.ToBase64String | .NET 9.0 | .NET 9.0 | 8 | 10.8334 ns | 0.3936 ns | 0.4532 ns | 10.8449 ns | 10.2466 ns | 11.6212 ns | 1.00 | 0.06 | 0.0030 | - | 48 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | HashResult.ToUrlEncodedBase64String | .NET 10.0 | .NET 10.0 | 8 | 31.5398 ns | 1.1195 ns | 1.2892 ns | 31.3105 ns | 30.0733 ns | 34.5121 ns | 0.84 | 0.04 | 0.0086 | - | 136 B | 1.00 | | ||
| | HashResult.ToUrlEncodedBase64String | .NET 9.0 | .NET 9.0 | 8 | 37.7741 ns | 0.7402 ns | 0.7270 ns | 37.9246 ns | 36.1056 ns | 38.6473 ns | 1.00 | 0.03 | 0.0086 | - | 136 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | HashResult.ToBinaryString | .NET 10.0 | .NET 10.0 | 8 | 121.2123 ns | 2.7938 ns | 3.2173 ns | 120.6071 ns | 116.4115 ns | 127.9913 ns | 0.82 | 0.03 | 0.0423 | - | 664 B | 1.00 | | ||
| | HashResult.ToBinaryString | .NET 9.0 | .NET 9.0 | 8 | 147.2114 ns | 2.8870 ns | 3.0890 ns | 147.1515 ns | 141.8733 ns | 152.5684 ns | 1.00 | 0.03 | 0.0421 | - | 664 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | 'HashResult.To<string> (converter)' | .NET 10.0 | .NET 10.0 | 8 | 9.5429 ns | 0.3250 ns | 0.3612 ns | 9.4518 ns | 9.1711 ns | 10.5143 ns | 0.66 | 0.18 | 0.0030 | - | 48 B | 1.00 | | ||
| | 'HashResult.To<string> (converter)' | .NET 9.0 | .NET 9.0 | 8 | 16.0595 ns | 5.1452 ns | 5.9252 ns | 12.3539 ns | 11.5648 ns | 26.4717 ns | 1.11 | 0.52 | 0.0030 | - | 48 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | **'HashResult.GetBytes - copy bytes'** | **.NET 10.0** | **.NET 10.0** | **32** | **2.9549 ns** | **0.2125 ns** | **0.2183 ns** | **2.8789 ns** | **2.7061 ns** | **3.3933 ns** | **0.62** | **0.22** | **0.0035** | **-** | **56 B** | **1.00** | | ||
| | 'HashResult.GetBytes - copy bytes' | .NET 9.0 | .NET 9.0 | 32 | 5.6959 ns | 2.3447 ns | 2.7001 ns | 3.9788 ns | 3.5512 ns | 10.1172 ns | 1.19 | 0.71 | 0.0035 | - | 56 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | HashResult.ToHexadecimalString | .NET 10.0 | .NET 10.0 | 32 | 27.1042 ns | 0.6509 ns | 0.7235 ns | 26.9399 ns | 26.3488 ns | 28.6672 ns | 0.73 | 0.04 | 0.0193 | - | 304 B | 1.00 | | ||
| | HashResult.ToHexadecimalString | .NET 9.0 | .NET 9.0 | 32 | 37.2492 ns | 1.7830 ns | 1.9078 ns | 36.7310 ns | 34.0068 ns | 41.5047 ns | 1.00 | 0.07 | 0.0193 | - | 304 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | HashResult.ToBase64String | .NET 10.0 | .NET 10.0 | 32 | 33.9563 ns | 0.8099 ns | 0.9327 ns | 34.0774 ns | 31.0488 ns | 35.2414 ns | 1.78 | 0.11 | 0.0071 | - | 112 B | 1.00 | | ||
| | HashResult.ToBase64String | .NET 9.0 | .NET 9.0 | 32 | 19.1324 ns | 0.9202 ns | 1.0229 ns | 19.1216 ns | 16.4070 ns | 20.6657 ns | 1.00 | 0.08 | 0.0071 | - | 112 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | HashResult.ToUrlEncodedBase64String | .NET 10.0 | .NET 10.0 | 32 | 105.9781 ns | 16.7741 ns | 19.3171 ns | 113.8672 ns | 57.6292 ns | 119.9665 ns | 1.54 | 0.29 | 0.0311 | - | 488 B | 1.00 | | ||
| | HashResult.ToUrlEncodedBase64String | .NET 9.0 | .NET 9.0 | 32 | 68.9203 ns | 3.2866 ns | 3.7848 ns | 67.4534 ns | 64.9570 ns | 77.4326 ns | 1.00 | 0.07 | 0.0310 | - | 488 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | HashResult.ToBinaryString | .NET 10.0 | .NET 10.0 | 32 | 788.0583 ns | 123.1042 ns | 141.7669 ns | 854.2335 ns | 446.7816 ns | 873.4718 ns | 0.93 | 0.32 | 0.1589 | - | 2504 B | 1.00 | | ||
| | HashResult.ToBinaryString | .NET 9.0 | .NET 9.0 | 32 | 902.7890 ns | 159.0826 ns | 183.1998 ns | 981.6323 ns | 491.7358 ns | 1,034.5140 ns | 1.06 | 0.38 | 0.1592 | - | 2504 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | 'HashResult.To<string> (converter)' | .NET 10.0 | .NET 10.0 | 32 | 32.1923 ns | 0.8480 ns | 0.9425 ns | 32.0620 ns | 30.5834 ns | 34.1729 ns | 0.89 | 0.06 | 0.0071 | - | 112 B | 1.00 | | ||
| | 'HashResult.To<string> (converter)' | .NET 9.0 | .NET 9.0 | 32 | 36.1355 ns | 1.9100 ns | 2.1995 ns | 36.5477 ns | 31.1890 ns | 39.8293 ns | 1.00 | 0.09 | 0.0071 | - | 112 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | **'HashResult.GetBytes - copy bytes'** | **.NET 10.0** | **.NET 10.0** | **256** | **29.7658 ns** | **3.6673 ns** | **4.2233 ns** | **29.8639 ns** | **22.4952 ns** | **38.0444 ns** | **0.77** | **0.13** | **0.0178** | **-** | **280 B** | **1.00** | | ||
| | 'HashResult.GetBytes - copy bytes' | .NET 9.0 | .NET 9.0 | 256 | 38.8652 ns | 3.0793 ns | 3.4226 ns | 39.6851 ns | 31.0340 ns | 44.2388 ns | 1.01 | 0.13 | 0.0178 | - | 280 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | HashResult.ToHexadecimalString | .NET 10.0 | .NET 10.0 | 256 | 332.3619 ns | 35.7998 ns | 41.2272 ns | 333.7390 ns | 264.1860 ns | 389.6913 ns | 1.17 | 0.19 | 0.1330 | - | 2096 B | 1.00 | | ||
| | HashResult.ToHexadecimalString | .NET 9.0 | .NET 9.0 | 256 | 286.6217 ns | 27.1810 ns | 31.3017 ns | 291.8207 ns | 238.8120 ns | 341.9756 ns | 1.01 | 0.15 | 0.1335 | - | 2096 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | HashResult.ToBase64String | .NET 10.0 | .NET 10.0 | 256 | 123.0009 ns | 12.4901 ns | 14.3836 ns | 127.7483 ns | 71.2376 ns | 138.7922 ns | 1.24 | 0.21 | 0.0454 | - | 712 B | 1.00 | | ||
| | HashResult.ToBase64String | .NET 9.0 | .NET 9.0 | 256 | 100.6536 ns | 8.5627 ns | 9.8609 ns | 101.4415 ns | 66.4831 ns | 112.4094 ns | 1.01 | 0.16 | 0.0453 | - | 712 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | HashResult.ToUrlEncodedBase64String | .NET 10.0 | .NET 10.0 | 256 | 407.1584 ns | 40.0446 ns | 46.1154 ns | 411.8714 ns | 259.9935 ns | 470.3277 ns | 1.12 | 0.26 | 0.1844 | - | 2896 B | 1.00 | | ||
| | HashResult.ToUrlEncodedBase64String | .NET 9.0 | .NET 9.0 | 256 | 371.1954 ns | 39.6840 ns | 45.7001 ns | 382.8811 ns | 197.3467 ns | 417.4752 ns | 1.02 | 0.24 | 0.1842 | - | 2896 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | HashResult.ToBinaryString | .NET 10.0 | .NET 10.0 | 256 | 6,218.3123 ns | 1,481.9248 ns | 1,706.5868 ns | 7,204.6794 ns | 3,502.0993 ns | 8,131.5561 ns | 0.82 | 0.32 | 1.2212 | - | 19296 B | 1.00 | | ||
| | HashResult.ToBinaryString | .NET 9.0 | .NET 9.0 | 256 | 7,939.5740 ns | 1,185.5915 ns | 1,365.3289 ns | 8,278.9708 ns | 4,101.9731 ns | 9,248.0146 ns | 1.05 | 0.34 | 1.2303 | - | 19296 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | 'HashResult.To<string> (converter)' | .NET 10.0 | .NET 10.0 | 256 | 110.8995 ns | 12.8471 ns | 14.7948 ns | 114.7455 ns | 78.0893 ns | 130.2795 ns | 1.12 | 0.24 | 0.0453 | - | 712 B | 1.00 | | ||
| | 'HashResult.To<string> (converter)' | .NET 9.0 | .NET 9.0 | 256 | 100.6368 ns | 10.6125 ns | 11.3553 ns | 101.3606 ns | 60.0488 ns | 116.4351 ns | 1.02 | 0.20 | 0.0453 | - | 712 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | **'HashResult.GetBytes - copy bytes'** | **.NET 10.0** | **.NET 10.0** | **1024** | **106.0886 ns** | **32.3535 ns** | **37.2584 ns** | **111.2442 ns** | **40.5701 ns** | **160.8209 ns** | **0.71** | **0.25** | **0.0667** | **-** | **1048 B** | **1.00** | | ||
| | 'HashResult.GetBytes - copy bytes' | .NET 9.0 | .NET 9.0 | 1024 | 150.7442 ns | 11.1358 ns | 12.8240 ns | 154.2401 ns | 122.7963 ns | 171.2166 ns | 1.01 | 0.12 | 0.0668 | - | 1048 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | HashResult.ToHexadecimalString | .NET 10.0 | .NET 10.0 | 1024 | 1,191.2612 ns | 215.2370 ns | 247.8672 ns | 1,298.6681 ns | 574.7689 ns | 1,350.1792 ns | 1.04 | 0.29 | 0.5234 | - | 8240 B | 1.00 | | ||
| | HashResult.ToHexadecimalString | .NET 9.0 | .NET 9.0 | 1024 | 1,176.2450 ns | 162.5583 ns | 187.2024 ns | 1,243.0160 ns | 825.1306 ns | 1,386.8318 ns | 1.03 | 0.25 | 0.5251 | - | 8240 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | HashResult.ToBase64String | .NET 10.0 | .NET 10.0 | 1024 | 300.3005 ns | 42.9724 ns | 49.4871 ns | 317.5721 ns | 137.4879 ns | 350.7828 ns | 0.88 | 0.15 | 0.1758 | - | 2760 B | 1.00 | | ||
| | HashResult.ToBase64String | .NET 9.0 | .NET 9.0 | 1024 | 341.0496 ns | 19.4105 ns | 22.3531 ns | 335.7253 ns | 304.2064 ns | 394.2699 ns | 1.00 | 0.09 | 0.1754 | - | 2760 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | HashResult.ToUrlEncodedBase64String | .NET 10.0 | .NET 10.0 | 1024 | 1,155.3536 ns | 224.8620 ns | 258.9515 ns | 1,206.5760 ns | 572.7688 ns | 1,607.1837 ns | 0.97 | 0.22 | 0.7055 | 0.0132 | 11088 B | 1.00 | | ||
| | HashResult.ToUrlEncodedBase64String | .NET 9.0 | .NET 9.0 | 1024 | 1,193.5769 ns | 64.3511 ns | 74.1068 ns | 1,212.5970 ns | 953.9424 ns | 1,291.8988 ns | 1.00 | 0.09 | 0.7057 | 0.0128 | 11088 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | HashResult.ToBinaryString | .NET 10.0 | .NET 10.0 | 1024 | 28,677.0629 ns | 6,031.6343 ns | 6,946.0390 ns | 31,176.7351 ns | 14,859.7019 ns | 35,315.9641 ns | 0.89 | 0.28 | 4.8265 | - | 76504 B | 1.00 | | ||
| | HashResult.ToBinaryString | .NET 9.0 | .NET 9.0 | 1024 | 33,046.6779 ns | 3,735.5753 ns | 3,997.0237 ns | 34,042.7982 ns | 17,311.8316 ns | 35,023.0998 ns | 1.03 | 0.25 | 4.8292 | - | 76504 B | 1.00 | | ||
| | | | | | | | | | | | | | | | | | | ||
| | 'HashResult.To<string> (converter)' | .NET 10.0 | .NET 10.0 | 1024 | 299.3046 ns | 58.4910 ns | 60.0659 ns | 318.5440 ns | 144.0678 ns | 346.3153 ns | 1.11 | 0.50 | 0.1760 | - | 2760 B | 1.00 | | ||
| | 'HashResult.To<string> (converter)' | .NET 9.0 | .NET 9.0 | 1024 | 296.0905 ns | 62.9758 ns | 72.5230 ns | 327.2458 ns | 136.8395 ns | 373.7436 ns | 1.10 | 0.52 | 0.1756 | - | 2760 B | 1.00 | | ||
| | Method | Runtime | Size | Mean | Error | StdDev | Median | Min | Max | Gen0 | Gen1 | Allocated | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Add blank line before benchmark results table (MD058).
Line 13 (code fence closing) should be followed by a blank line before the table header on line 14.
Apply this fix:
PowerPlanMode=00000000-0000-0000-0000-000000000000 IterationTime=250ms MaxIterationCount=20
MinIterationCount=15 WarmupCount=1
| Method | Runtime | Size | Mean | Error | StdDev | Median | Min | Max | Gen0 | Gen1 | Allocated |
<!-- suggestion_start -->
<details>
<summary>📝 Committable suggestion</summary>
> ‼️ **IMPORTANT**
> Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
```suggestion
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)
14-14: Tables should be surrounded by blank lines
(MD058, blanks-around-tables)
🤖 Prompt for AI Agents
In reports/tuning/Cuemon.Security.HashResultBenchmark-report-github.md around
lines 13 to 14, the closing code fence on line 13 must be followed by a blank
line before the Markdown table header on line 14 to satisfy MD058; insert a
single empty line between the code fence and the table header so the table is
properly separated from the preceding fenced code block.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This is a service update (version 10.1.1) that focuses on upgrading package dependencies to their latest compatible versions across all supported target frameworks (.NET 10, .NET 9, and .NET Standard 2.0). The PR includes infrastructure improvements by adding a new benchmark runner tooling project and transitioning from the legacy .sln format to the modern .slnx format.
- Updated Microsoft package dependencies from version 10.0.0 to 10.0.1 and from 9.0.10 to 9.0.11
- Added new benchmark runner tooling using Codebelt.Extensions.BenchmarkDotNet
- Transitioned solution file from classic
.slnto modern.slnxformat - Updated Docker test environment image to match .NET 10.0.1
- Refreshed benchmark reports with new .NET SDK versions
- Updated CI pipeline badge reference in README
Reviewed changes
Copilot reviewed 60 out of 60 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| tooling/bdn-runner/bdn-runner.csproj | New benchmark runner project targeting .NET 10.0 |
| tooling/bdn-runner/Program.cs | Benchmark runner entry point configured for .NET 9.0 and 10.0 runtimes |
| Directory.Packages.props | Updated Microsoft.* package versions from 10.0.0 to 10.0.1 and 9.0.10 to 9.0.11, added Codebelt.Extensions.BenchmarkDotNet.Console 1.0.0 |
| Directory.Build.props | Moved PackageReleaseNotesFile property definition from targets to props, removed duplicate TargetFrameworks line |
| Directory.Build.targets | Removed PackageReleaseNotesFile property definition (moved to props) |
| testenvironments.json | Updated Docker image from 10.0.100 to 10.0.101 |
| Cuemon.slnx | New XML-based solution file replacing legacy .sln format |
| Cuemon.sln | Deleted legacy solution file (replaced by .slnx) |
| README.md | Updated build status badge URL from pipelines.yml to ci-pipeline.yml |
| CHANGELOG.md | Added version 10.1.1 entry documenting dependency updates |
| reports/tuning/*.md | Updated benchmark reports reflecting new SDK version 10.0.101 and runtime 10.0.1 |
| .nuget/*/PackageReleaseNotes.txt | Added v10.1.1 release notes documenting dependency upgrades for all packages |
This reverts commit 6ab56d2.
This pull request updates the release notes for multiple NuGet packages across the solution to document the upgrade of dependencies to their latest compatible versions for all supported target frameworks. No code changes are included—only documentation updates for the new version (10.1.1) of each package.
Summary by CodeRabbit
New Features
Dependencies
Build & Infrastructure
Documentation
✏️ Tip: You can customize this high-level summary in your review settings.