Always create a specifically for benchmarking to keep it isolated from your main application logic. Create the project: dotnet new console -n MyBenchmarks cd MyBenchmarks Use code with caution. Copied to clipboard
using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Running; using System.Text; [MemoryDiagnoser] // Tracks RAM usage and GC collections public class StringBenchmarking { private const string Text = "Hello World"; [Benchmark] public string UseStringConcat() { string result = ""; for (int i = 0; i < 100; i++) result += Text; return result; } [Benchmark] public string UseStringBuilder() { var sb = new StringBuilder(); for (int i = 0; i < 100; i++) sb.Append(Text); return sb.ToString(); } } Use code with caution. Copied to clipboard 3. Initialize the Runner
In your Program.cs , call the BenchmarkRunner to execute your class. How to benchmark C# code using BenchmarkDotNet
Create a class containing the methods you want to compare. You must mark each method with the [Benchmark] attribute.
using BenchmarkDotNet.Running; var summary = BenchmarkRunner.Run (); Use code with caution. Copied to clipboard 4. Critical: Run in Release Mode Always create a specifically for benchmarking to keep
Use the NuGet Gallery or the CLI to add the library: dotnet add package BenchmarkDotNet Use code with caution. Copied to clipboard 2. Design the Benchmark Class
BenchmarkDotNet will refuse to run or give a stern warning if you are in Debug mode. Debug builds are significantly slower and lack the compiler optimizations that reflect real-world performance. dotnet run -c Release Use code with caution. Copied to clipboard 5. Essential Best Practices A Step by Step Guide to Benchmarking in .NET Create a class containing the methods you want to compare
Benchmarking in .NET is famously difficult because the JIT compiler and runtime perform many "hidden" optimizations. is the industry-standard library that automates the heavy lifting—like warm-ups, overhead removal, and statistical analysis—to give you reliable results. 1. Setup Your Benchmark Project