C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
C# program that times StringBuilder appends
using System;
using System.Diagnostics;
using System.Text;
class Program
{
const int _length = 5000000;
const int _max = 1000000;
static void Main()
{
StringBuilder builder = new StringBuilder(50000 + 100);
for (int a = 1; a < 100; a++)
{
string v = new string('x', a);
int repeat = _length / a;
var s1 = Stopwatch.StartNew();
for (int i = 0; i < repeat; i++)
{
builder.Append(v);
}
s1.Stop();
builder.Clear();
GC.Collect();
Console.WriteLine("{0} chars x {1}: {2:0.00 ms}",
a,
repeat,
((double)(s1.Elapsed.TotalMilliseconds)));
}
Console.WriteLine("[Done]");
Console.Read();
}
}
Output
1 chars x 5000000: 47.02 ms
2 chars x 2500000: 21.26 ms
3 chars x 1666666: 16.93 ms
4 chars x 1250000: 12.35 ms
5 chars x 1000000: 10.72 ms
6 chars x 833333: 9.92 ms
7 chars x 714285: 8.20 ms
8 chars x 625000: 6.80 ms
9 chars x 555555: 8.24 ms
10 chars x 500000: 6.06 ms
11 chars x 454545: 6.54 ms
12 chars x 416666: 5.29 ms
13 chars x 384615: 6.43 ms
14 chars x 357142: 4.90 ms
15 chars x 333333: 5.77 ms
16 chars x 312500: 4.63 ms
17 chars x 294117: 4.58 ms
18 chars x 277777: 4.40 ms
19 chars x 263157: 4.32 ms
20 chars x 250000: 4.25 ms
21 chars x 238095: 4.61 ms
22 chars x 227272: 4.06 ms
23 chars x 217391: 4.74 ms
24 chars x 208333: 3.88 ms
25 chars x 200000: 4.30 ms
26 chars x 192307: 4.45 ms
27 chars x 185185: 4.40 ms
28 chars x 178571: 4.29 ms
29 chars x 172413: 9.04 ms
30 chars x 166666: 4.25 ms
31 chars x 161290: 4.41 ms
32 chars x 156250: 3.65 ms
33 chars x 151515: 4.34 ms
34 chars x 147058: 4.59 ms
35 chars x 142857: 4.40 ms
36 chars x 138888: 4.19 ms
37 chars x 135135: 4.92 ms
38 chars x 131578: 4.31 ms
39 chars x 128205: 4.49 ms
40 chars x 125000: 4.50 ms
41 chars x 121951: 4.36 ms
42 chars x 119047: 4.71 ms
43 chars x 116279: 4.03 ms
44 chars x 113636: 3.61 ms
45 chars x 111111: 4.30 ms
46 chars x 108695: 4.47 ms
47 chars x 106382: 4.54 ms
48 chars x 104166: 3.62 ms
49 chars x 102040: 4.10 ms
50 chars x 100000: 4.15 ms
51 chars x 98039: 4.10 ms
52 chars x 96153: 3.52 ms
53 chars x 94339: 4.10 ms
54 chars x 92592: 4.09 ms
55 chars x 90909: 4.27 ms
56 chars x 89285: 4.11 ms
57 chars x 87719: 4.20 ms
58 chars x 86206: 4.23 ms
59 chars x 84745: 4.25 ms
60 chars x 83333: 4.44 ms
61 chars x 81967: 4.22 ms
62 chars x 80645: 4.26 ms
63 chars x 79365: 4.26 ms
64 chars x 78125: 4.22 ms
65 chars x 76923: 4.22 ms
66 chars x 75757: 4.27 ms
67 chars x 74626: 4.20 ms
68 chars x 73529: 4.32 ms
69 chars x 72463: 3.73 ms
70 chars x 71428: 4.18 ms
71 chars x 70422: 4.48 ms
72 chars x 69444: 3.66 ms
73 chars x 68493: 4.28 ms
74 chars x 67567: 3.77 ms
75 chars x 66666: 4.11 ms
76 chars x 65789: 4.31 ms
77 chars x 64935: 3.82 ms
78 chars x 64102: 4.30 ms
79 chars x 63291: 3.77 ms
80 chars x 62500: 4.19 ms
81 chars x 61728: 3.92 ms
82 chars x 60975: 4.76 ms
83 chars x 60240: 4.21 ms
84 chars x 59523: 4.08 ms
85 chars x 58823: 4.32 ms
86 chars x 58139: 4.30 ms
87 chars x 57471: 4.40 ms
88 chars x 56818: 4.59 ms
89 chars x 56179: 4.30 ms
90 chars x 55555: 4.40 ms
91 chars x 54945: 4.26 ms
92 chars x 54347: 3.86 ms
93 chars x 53763: 4.38 ms
94 chars x 53191: 3.54 ms
95 chars x 52631: 3.75 ms
96 chars x 52083: 4.45 ms
97 chars x 51546: 4.13 ms
98 chars x 51020: 4.20 ms
99 chars x 50505: 4.48 ms
Also: There is no benefit to using more than 20 characters at a time. Combining Append calls could make a performance difference.