1. Install BenchmarkDotNet NuGet

2. Create MyBenchmarks.cs

using BenchmarkDotNet.Attributes;
using BenchmarkDotNet.Order;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
 
[MemoryDiagnoser]
[Orderer(SummaryOrderPolicy.FastestToSlowest)]
[RankColumn]
public class MyBenchmarks
{
    private int[] data;
 
    public MyBenchmarks()
    {
        data = new int[1000];
        for (int i = 0; i < data.Length; i++)
        {
            data[i] = i + 1;
        }
    }
 
    [Benchmark]
    public int SumArray()
    {
        int sum = 0;
        for (int i = 0; i < data.Length; i++)
        {
            sum += data[i];
        }
        return sum;
    }
 
    [Benchmark]
    public int ParallelSumArray()
    {
        int sum = 0;
        Parallel.For(0, data.Length, i =>
        {
            sum += data[i];
        });
        return sum;
    }
 
    int NumberOfItems = 100000;
 
    [Benchmark]
    public string ConcatStringsUsingStringBuilder()
    {
        var sb = new StringBuilder();
        for (int i = 0; i < NumberOfItems; i++)
        {
            sb.Append("Hello World!" + i);
        }
        return sb.ToString();
    }
 
    [Benchmark]
    public string ConcatStringsUsingGenericList()
    {
        var list = new List<string>(NumberOfItems);
        for (int i = 0; i < NumberOfItems; i++)
        {
            list.Add("Hello World!" + i);
        }
        return list.ToString();
    }
}

3. Update program.cs

internal class Program
{
    static void Main(string[] args)
    {
        // Console.WriteLine("Hello, World!");
 
        var summary = BenchmarkRunner.Run<MyBenchmarks>();
        //summary.ExportToCsv("benchmark_results.csv");
        //summary.ExportToHtml("benchmark_results.html");
    }
}