Skip to content

Latest commit

 

History

History
79 lines (53 loc) · 2.16 KB

File metadata and controls

79 lines (53 loc) · 2.16 KB

Contributing

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.

Quick start (dev setup)

Prerequisites

  • Git
  • .NET SDKs:
    • .NET 8 SDK
    • .NET 9 SDK
    • .NET 10 SDK

Verify:

dotnet --list-sdks

Build

dotnet build -c Release TestNet.sln

Run benchmarks

dotnet 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.csproj

Compare results

dotnet run --project ResultsComparator/ResultsComparator.csproj

Benchmarking guidelines

Performance results are sensitive to the environment. If you’re contributing benchmark changes or publishing numbers:

  • Use Release builds.
  • 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.

Repository hygiene

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.

Style & code quality

  • 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.

Pull requests

  1. Create a branch.
  2. Keep PRs small and well described.
  3. Update README/docs when behavior or commands change.
  4. Ensure Release build passes.

Issues / discussions

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).