創建控制臺項目(或修改現有項目的Main方法代碼),Nget導入Benchmark0.13.12,創建測試類:
public class StringBenchMark{int[] numbers;public StringBenchMark() {numbers = Enumerable.Range(1, 20000).ToArray();}[Benchmark(Baseline = true, OperationsPerInvoke = 10)] //OperationsPerInvoke設置太小無法充分測試出性能差異,設置太大耗時較長public string StringConcatenationTesk(){string s = string.Empty;for(var i = 0; i < numbers.Length; i++){s += numbers[i].ToString() + ",";}return s;}[Benchmark(OperationsPerInvoke = 10)] public string StringBuilderTest() {var builder = new StringBuilder();for(var i =0; i < numbers.Length; ++i){builder.Append(numbers[i].ToString());builder.Append(",");}return builder.ToString();}}
static void Main(string[] args){BenchmarkRunner.Run<StringBenchMark>();Console.ReadLine();}
右鍵項目--屬性, 勾選優化編譯。
運行后得到如下內容:
注:關注StdDev(標準偏差)即可,越小越好。?Mean為平均值,ERROR為標準誤差;Ratio為異眾比率;