using System.Diagnostics;
private static Stopwatch _watch = new Stopwatch();
public static void Main()
for(double times = 0; times <= 1000; times *= 10)
var stringTestResult = Test(() => StringTest((int)times));
var stringBuilderTestResult = Test(() => StringBuilderTest((int)times));
var stringBuilderPresetTestResult = Test(() => StringBuilderPresetTest((int)times));
if(times == 0) {times=0.1;continue;}
Console.WriteLine($"Testing against {times} times concatenation.");
Console.WriteLine($"String: {stringTestResult}");
Console.WriteLine($"StringBuilder: {stringBuilderTestResult}");
Console.WriteLine($"StringBuilderPreset: {stringBuilderPresetTestResult}");
public static long Test(Action test)
for(var x =0; x<=100; x++) test();
var ticks = _watch.ElapsedTicks;
public static void StringTest(int times)
for(var x = 0; x < times; x++)
public static void StringBuilderTest(int times)
var s = new StringBuilder();
for(var x = 0; x < times; x++)
public static void StringBuilderPresetTest(int times)
var s = new StringBuilder(times);
for(var x = 0; x < times; x++)