這邊只是用來我自己記錄跟分享有這個東西,防止我忘記。下面連結講得更清楚,可以參考
基本上只要準備一個 Console 並且安裝 Benchmark Dotnet 的 Nuget 套件
dotnet add package BenchmarkDotNet --version 0.13.12並建立一個目標Class 比方說我現在是要比較 string.IsNullOrEmpty 與直接判斷字串,效能差異到底有多少。
public class IsEmptyVsEqual
{
    [Benchmark()]
    public void IsEmpty()
    {
        string sut = null;
    var a=    string.IsNullOrEmpty(sut);
        sut = "";
        var b = string.IsNullOrEmpty(sut);
        sut = "aaaaaaaaaaaaasss";
      var c =  string.IsNullOrEmpty(sut);
    }
    
    [Benchmark()]
    public void IsEqual()
    {
        string sut = null;
        var a=    sut == null || sut == "";
        sut = "";
        var b = sut == null || sut == "";
        sut = "aaaaaaaaaaaaasss";
        var c =  sut == null || sut == "";
    }
}上面程式碼就是我要測試效率的兩個程式,分別針對null 、"跟有字串內容的狀態跑一次,並哪一種比較方式的效能比較好,這邊只要在 method 加上Attribute [Benchmark()]
然後回到Main 跑這一句程式碼
var summery = BenchmarkRunner.Run<IsEmptyVsEqual>();然後執行就會開始比較囉~如下圖~

然後可以再 Class 上面加上  [MaxColumn] [MinColumn]就可以抓出測試中的最大值跟最小值,也有可以比較記憶體的 Attribute  [MemoryDiagnoser()]
 
如有指正之處,歡迎隨時提出