Thanks for your interest in contributing!
This repository is a small, reproducible benchmark suite comparing .NET 8 / .NET 9 / .NET 10 console apps on the same machine.
- Git
- .NET SDKs:
- .NET 8 SDK
- .NET 9 SDK
- .NET 10 SDK
Verify:
dotnet --list-sdksdotnet build -c Release TestNet.slndotnet run -c Release --project Net8App/PerformanceTest/PerformanceTest.csproj
dotnet run -c Release --project Net9App/PerformanceTest/PerformanceTest.csproj
dotnet run -c Release --project Net10App/PerformanceTest/PerformanceTest.csprojdotnet run --project ResultsComparator/ResultsComparator.csprojPerformance results are sensitive to the environment. If you’re contributing benchmark changes or publishing numbers:
- Use
Releasebuilds. - Prefer a quiet machine: close heavy background apps.
- Run each test multiple times and compare medians.
- Keep the runtime environment stable (power plan / CPU governor, thermal state).
- Avoid changing multiple benchmarks at once; isolate changes for clear attribution.
Please do not commit generated artifacts:
bin/,obj/- Generated benchmark outputs in
BenchmarkResults/(currently ignored by.gitignore) - Local folders like
DocsInfo/
If you need to commit example benchmark results for documentation, discuss it first in an Issue and we can adjust .gitignore rules.
- Keep changes minimal and focused.
- Prefer clear, deterministic benchmarks (seeded RNG, fixed sizes).
- Avoid adding dependencies unless they are justified.
- Ensure the solution builds:
dotnet build -c Release TestNet.sln.
- Create a branch.
- Keep PRs small and well described.
- Update README/docs when behavior or commands change.
- Ensure
Releasebuild passes.
Use Issues for actionable work items (bugs, feature requests). For general questions, use GitHub Discussions (update the link in .github/ISSUE_TEMPLATE/config.yml after creating the GitHub repo).