Benchmark your developer PC's performance with real-world .NET build scenarios.
git clone https://github.com/damianedwards/DevBench.git
cd DevBench
.\run-benchmarks.ps1git clone https://github.com/damianedwards/DevBench.git
cd DevBench
./run-benchmarks.shThe interactive menu will guide you through selecting which benchmarks to run.
DevBench measures build performance across different scenarios:
- Cold builds - First build after clearing caches
- Warm builds - Subsequent builds with warm caches
- Incremental builds - Rebuilding after a small code change
Results capture detailed system information so you can compare performance across different hardware and configurations.
- OS: Platform, version, architecture
- CPU: Model, cores, frequency
- Memory: Capacity, speed
- Storage: Type (SSD/HDD), file system (NTFS, ReFS, ext4, btrfs, APFS), model, free space
- Windows-specific: Dev Drive status, Windows Defender exclusions
- macOS-specific: Chip model (Apple Silicon/Intel), Rosetta 2 status
- Linux-specific: Distribution, kernel version
After running benchmarks, your results are saved to results/results-<timestamp>-<hash>.json.
To share your results:
- Fork this repository
- Copy your results file to the
results/folder - Submit a pull request
Your results will appear on the DevBench Results page after merging.
See docs/benchmark-schema.md for the benchmark manifest format.
Benchmarks can be:
- In-repo: Source code included in the
benchmarks/folder - External-repo: Points to another GitHub repository
DevBench/
├── run-benchmarks.ps1 # Windows bootstrapper
├── run-benchmarks.sh # Unix bootstrapper
├── src/
│ └── DevBench.cs # Test harness (file-based .NET 10 app)
├── benchmarks/ # Benchmark definitions
│ └── dotnet-hello-world/
│ ├── benchmark.json
│ └── src/
├── results/ # Submitted benchmark results
├── site/ # Results website (Eleventy)
└── docs/ # Documentation
- To run benchmarks: Just clone and run the script (downloads pre-built harness and benchmarks)
- To develop the harness or benchmarks: .NET 10 SDK, use
--devflag
When contributing to DevBench (harness or benchmarks), use the --dev flag:
# Windows
.\run-benchmarks.ps1 -Dev# macOS / Linux
./run-benchmarks.sh --devThis builds the harness locally and uses the local benchmarks/ folder instead of the release versions.
MIT License - see LICENSE