Skip to content

Commit dfc76c6

Browse files
Update README.md
1 parent a57f01f commit dfc76c6

File tree

1 file changed

+64
-25
lines changed

1 file changed

+64
-25
lines changed

README.md

Lines changed: 64 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
The version of StringBuilder built on an array of strings string[]: uses less memory.
1515

16-
Benchmark:
16+
## Benchmark:
1717

1818
```C#
1919

@@ -51,39 +51,78 @@ Benchmark:
5151

5252
| Method | StrLength | Mean | Ratio | Gen0 | Gen1 | Gen2 | Allocated | Alloc Ratio |
5353
|------------------- |---------- |--------------:|------:|----------:|----------:|----------:|--------------:|------------:|
54-
| **StringBuilder** | **5** | **18.40 μs** | **1.00** | **-** | **-** | **-** | **30.98 KB** | **1.00** |
55-
| StringBuilderArray | 5 | 32.89 μs | 1.79 | - | - | - | 34.7 KB | 1.12 |
54+
| **System.Text.StringBuilder** | **5** | **17.97 μs** | **1.00** | **-** | **-** | **-** | **30.98 KB** | **1.00** |
55+
| StringBuilderArray | 5 | 31.92 μs | 1.77 | - | - | - | 34.77 KB | 1.12 |
5656
| | | | | | | | | |
57-
| **StringBuilder** | **7** | **20.89 μs** | **1.00** | **-** | **-** | **-** | **50.59 KB** | **1.00** |
58-
| StringBuilderArray | 7 | 32.57 μs | 1.57 | - | - | - | 38.61 KB | 0.76 |
57+
| **System.Text.StringBuilder** | **7** | **19.56 μs** | **1.00** | **-** | **-** | **-** | **50.59 KB** | **1.00** |
58+
| StringBuilderArray | 7 | 31.61 μs | 1.64 | - | - | - | 38.67 KB | 0.76 |
5959
| | | | | | | | | |
60-
| **StringBuilder** | **10** | **16.01 μs** | **1.00** | **-** | **-** | **-** | **56.45 KB** | **1.00** |
61-
| StringBuilderArray | 10 | 34.88 μs | 2.23 | - | - | - | 44.47 KB | 0.79 |
60+
| **System.Text.StringBuilder** | **10** | **18.31 μs** | **1.00** | **-** | **-** | **-** | **56.45 KB** | **1.00** |
61+
| StringBuilderArray | 10 | 32.29 μs | 1.76 | - | - | - | 44.53 KB | 0.79 |
6262
| | | | | | | | | |
63-
| **StringBuilder** | **50** | **23.38 μs** | **1.00** | **-** | **-** | **-** | **206.36 KB** | **1.00** |
64-
| StringBuilderArray | 50 | 36.02 μs | 1.48 | - | - | - | 122.59 KB | 0.59 |
63+
| **System.Text.StringBuilder** | **50** | **28.05 μs** | **1.00** | **-** | **-** | **-** | **206.36 KB** | **1.00** |
64+
| StringBuilderArray | 50 | 34.38 μs | 1.39 | - | - | - | 122.66 KB | 0.59 |
6565
| | | | | | | | | |
66-
| **StringBuilder** | **100** | **27.13 μs** | **1.00** | **-** | **-** | **-** | **413.8 KB** | **1.00** |
67-
| StringBuilderArray | 100 | 43.94 μs | 1.77 | - | - | - | 220.25 KB | 0.53 |
66+
| **System.Text.StringBuilder** | **100** | **29.47 μs** | **1.00** | **-** | **-** | **-** | **413.8 KB** | **1.00** |
67+
| StringBuilderArray | 100 | 37.92 μs | 1.28 | - | - | - | 220.31 KB | 0.53 |
6868
| | | | | | | | | |
69-
| **StringBuilder** | **1000** | **735.77 μs** | **1.00** | **-** | **-** | **-** | **3935.53 KB** | **1.00** |
70-
| StringBuilderArray | 1000 | 570.10 μs | 0.80 | - | - | - | 1978.06 KB | 0.50 |
69+
| **System.Text.StringBuilder** | **1000** | **747.71 μs** | **1.00** | **-** | **-** | **-** | **3935.53 KB** | **1.00** |
70+
| StringBuilderArray | 1000 | 550.49 μs | 0.78 | - | - | - | 1978.13 KB | 0.50 |
7171
| | | | | | | | | |
72-
| **StringBuilder** | **2500** | **1,790.58 μs** | **1.00** | **-** | **-** | **-** | **9804.08 KB** | **1.00** |
73-
| StringBuilderArray | 2500 | 1,412.22 μs | 0.79 | - | - | - | 4907.75 KB | 0.50 |
72+
| **System.Text.StringBuilder** | **2500** | **1,869.84 μs** | **1.00** | **-** | **-** | **-** | **9804.08 KB** | **1.00** |
73+
| StringBuilderArray | 2500 | 1,348.66 μs | 0.73 | - | - | - | 4907.81 KB | 0.50 |
7474
| | | | | | | | | |
75-
| **StringBuilder** | **5000** | **4,863.92 μs** | **1.00** | **1000.0000** | **-** | **-** | **19583.76 KB** | **1.00** |
76-
| StringBuilderArray | 5000 | 2,689.05 μs | 0.55 | - | - | - | 9790.56 KB | 0.50 |
75+
| **System.Text.StringBuilder** | **5000** | **5,274.39 μs** | **1.00** | **1000.0000** | **-** | **-** | **19583.76 KB** | **1.00** |
76+
| StringBuilderArray | 5000 | 2,672.41 μs | 0.51 | - | - | - | 9790.63 KB | 0.50 |
7777
| | | | | | | | | |
78-
| **StringBuilder** | **10000** | **10,137.72 μs** | **1.00** | **2000.0000** | **1000.0000** | **-** | **39162.77 KB** | **1.00** |
79-
| StringBuilderArray | 10000 | 5,259.71 μs | 0.51 | - | - | - | 19556.19 KB | 0.50 |
78+
| **System.Text.StringBuilder** | **10000** | **10,141.16 μs** | **1.00** | **2000.0000** | **1000.0000** | **-** | **39162.77 KB** | **1.00** |
79+
| StringBuilderArray | 10000 | 5,112.69 μs | 0.50 | - | - | - | 19556.25 KB | 0.50 |
8080
| | | | | | | | | |
81-
| **StringBuilder** | **100000** | **54,801.69 μs** | **1.00** | **4000.0000** | **4000.0000** | **3000.0000** | **390802.44 KB** | **1.00** |
82-
| StringBuilderArray | 100000 | 20,538.66 μs | 0.37 | - | - | - | 195337.44 KB | 0.50 |
81+
| **System.Text.StringBuilder** | **100000** | **54,063.39 μs** | **1.00** | **4000.0000** | **4000.0000** | **3000.0000** | **390802.44 KB** | **1.00** |
82+
| StringBuilderArray | 100000 | 20,596.38 μs | 0.38 | - | - | - | 195337.5 KB | 0.50 |
8383
| | | | | | | | | |
84-
| **StringBuilder** | **500000** | **210,721.40 μs** | **1.00** | **5000.0000** | **4000.0000** | **4000.0000** | **1953310.77 KB** | **1.00** |
85-
| StringBuilderArray | 500000 | 105,015.80 μs | 0.50 | - | - | - | 976587.44 KB | 0.50 |
84+
| **System.Text.StringBuilder** | **500000** | **210,668.68 μs** | **1.00** | **5000.0000** | **4000.0000** | **4000.0000** | **1953310.77 KB** | **1.00** |
85+
| StringBuilderArray | 500000 | 105,116.28 μs | 0.50 | - | - | - | 976587.5 KB | 0.50 |
8686
| | | | | | | | | |
87-
| **StringBuilder** | **1071741** | **289,243.13 μs** | **1.00** | **5000.0000** | **4000.0000** | **4000.0000** | **4186664.2 KB** | **1.00** |
88-
| StringBuilderArray | 1071741 | 152,814.02 μs | 0.53 | - | - | - | 2093269.08 KB | 0.50 |
87+
| **System.Text.StringBuilder** | **1071741** | **289,865.89 μs** | **1.00** | **5000.0000** | **4000.0000** | **4000.0000** | **4186664.2 KB** | **1.00** |
88+
| StringBuilderArray | 1071741 | 152,856.84 μs | 0.53 | - | - | - | 2093269.14 KB | 0.50 |
8989

90+
## Reuse instance benchmark
91+
92+
| Method | StrLength | Mean | Ratio | Gen0 | Gen1 | Gen2 | Allocated | Alloc Ratio |
93+
|------------------- |---------- |--------------:|------:|----------:|----------:|----------:|--------------:|------------:|
94+
| **System.Text.StringBuilder** | **5** | **22.54 μs** | **1.00** | **-** | **-** | **-** | **47.01 KB** | **1.00** |
95+
| StringBuilderArray | 5 | 39.13 μs | 1.75 | - | - | - | 45.12 KB | 0.96 |
96+
| | | | | | | | | |
97+
| **System.Text.StringBuilder** | **7** | **21.42 μs** | **1.00** | **-** | **-** | **-** | **71.7 KB** | **1.00** |
98+
| StringBuilderArray | 7 | 38.15 μs | 1.78 | - | - | - | 49.02 KB | 0.68 |
99+
| | | | | | | | | |
100+
| **System.Text.StringBuilder** | **10** | **22.49 μs** | **1.00** | **-** | **-** | **-** | **84.59 KB** | **1.00** |
101+
| StringBuilderArray | 10 | 39.34 μs | 1.77 | - | - | - | 54.88 KB | 0.65 |
102+
| | | | | | | | | |
103+
| **System.Text.StringBuilder** | **50** | **29.06 μs** | **1.00** | **-** | **-** | **-** | **309.51 KB** | **1.00** |
104+
| StringBuilderArray | 50 | 41.42 μs | 1.42 | - | - | - | 133.01 KB | 0.43 |
105+
| | | | | | | | | |
106+
| **System.Text.StringBuilder** | **100** | **96.25 μs** | **1.00** | **-** | **-** | **-** | **626.33 KB** | **1.00** |
107+
| StringBuilderArray | 100 | 49.48 μs | 0.56 | - | - | - | 230.66 KB | 0.37 |
108+
| | | | | | | | | |
109+
| **System.Text.StringBuilder** | **1000** | **1,109.48 μs** | **1.00** | **-** | **-** | **-** | **5904.3 KB** | **1.00** |
110+
| StringBuilderArray | 1000 | 542.58 μs | 0.50 | - | - | - | 1988.48 KB | 0.34 |
111+
| | | | | | | | | |
112+
| **System.Text.StringBuilder** | **2500** | **3,839.15 μs** | **1.00** | **1000.0000** | **1000.0000** | **1000.0000** | **14698.94 KB** | **1.00** |
113+
| StringBuilderArray | 2500 | 1,378.40 μs | 0.36 | - | - | - | 4918.16 KB | 0.33 |
114+
| | | | | | | | | |
115+
| **System.Text.StringBuilder** | **5000** | **8,019.07 μs** | **1.00** | **2000.0000** | **1000.0000** | **1000.0000** | **29353.62 KB** | **1.00** |
116+
| StringBuilderArray | 5000 | 2,711.04 μs | 0.36 | - | - | - | 9800.98 KB | 0.33 |
117+
| | | | | | | | | |
118+
| **System.Text.StringBuilder** | **10000** | **13,084.87 μs** | **1.00** | **3000.0000** | **2000.0000** | **1000.0000** | **58702.15 KB** | **1.00** |
119+
| StringBuilderArray | 10000 | 5,610.82 μs | 0.42 | - | - | - | 19566.6 KB | 0.33 |
120+
| | | | | | | | | |
121+
| **System.Text.StringBuilder** | **100000** | **95,966.62 μs** | **1.00** | **5000.0000** | **5000.0000** | **4000.0000** | **586134.84 KB** | **1.00** |
122+
| StringBuilderArray | 100000 | 20,813.11 μs | 0.25 | - | - | - | 195347.85 KB | 0.33 |
123+
| | | | | | | | | |
124+
| **System.Text.StringBuilder** | **500000** | **284,075.06 μs** | **1.00** | **7000.0000** | **6000.0000** | **4000.0000** | **2930037.34 KB** | **1.00** |
125+
| StringBuilderArray | 500000 | 105,142.19 μs | 0.37 | - | - | - | 976597.85 KB | 0.33 |
126+
| | | | | | | | | |
127+
| **System.Text.StringBuilder** | **1071741** | **370,876.76 μs** | **1.00** | **7000.0000** | **6000.0000** | **4000.0000** | **6280013.72 KB** | **1.00** |
128+
| StringBuilderArray | 1071741 | 152,671.59 μs | 0.41 | - | - | - | 2093279.49 KB | 0.33 |

0 commit comments

Comments
 (0)