StackOverflow String Replacement Comparison
Comparing the performance of various ways to replace characters in a string https://stackoverflow.com/questions/7411438/remove-characters-from-c-sharp-string
by drzaus
HTML
<span style="color: green; font-weight:bold; font-size: 110%;">
<th class="headingpresenter">Control (10000x)</th>
</span>
<td class="headingpresenter">1047 ticks elapsed (0.1047 ms) [in 10K reps, 1.047E-05 ms per]</td>
<br />
<span style="color: green; font-weight:bold; font-size: 110%;">
<th class="headingpresenter">My name @is ,Wan.;'; Wan</th>
</span>
<td class="headingpresenter">
<table id="t1">
<tr>
<td class="typeheader" colspan="3">(8 items)</td>
</tr>
<tr>
<th title="System.String">Test</th>
<th title="System.String">Compare</th>
<th title="System.String">Elapsed</th>
</tr>
<tr>
<td>stackoverflow SplitJoin</td>
<td>1.00x</td>
<td>29023 ticks elapsed (2.9023 ms) [in 10K reps, 0.00029023 ms per]</td>
</tr>
<tr>
<td>stackoverflow Replace</td>
<td>2.77x</td>
<td>80295 ticks elapsed (8.0295 ms) [in 10K reps, 0.00080295 ms per]</td>
</tr>
<tr>
<td>stackoverflow RegexCompiled</td>
<td>5.27x</td>
<td>152869 ticks elapsed (15.2869 ms) [in 10K reps, 0.00152869 ms per]</td>
</tr>
<tr>
<td>stackoverflow LinqSplit</td>
<td>5.43x</td>
<td>157580 ticks elapsed (15.758 ms) [in 10K reps, 0.0015758 ms per]</td>
</tr>
<tr>
<td>stackoverflow Regex, Uncompiled</td>
<td>5.85x</td>
<td>169667 ticks elapsed (16.9667 ms) [in 10K reps, 0.00169667 ms per]</td>
</tr>
<tr>
<td>stackoverflow Regex</td>
<td>6.81x</td>
<td>197551 ticks elapsed (19.7551 ms) [in 10K reps, 0.00197551 ms per]</td>
</tr>
<tr>
<td>stackoverflow RegexCompiled Insensitive</td>
<td>7.33x</td>
<td>212789 ticks elapsed (21.2789 ms) [in 10K reps, 0.00212789 ms per]</td>
</tr>
...
CSS
body {
margin: 0.3em 0.3em 0.4em 0.4em;
font-family: Verdana;
font-size: 80%;
background: white;
}
p, pre {
margin:0;
padding:0;
font-family: Verdana;
}
table {
border-collapse: collapse;
border: 2px solid #17b;
margin: 0.3em 0.2em;
}
table.limit {
border-collapse: collapse;
border-bottom: 2px solid #c31;
}
td, th {
vertical-align: top;
border: 1px solid #aaa;
padding: 0.1em 0.2em;
margin: 0;
}
th {
text-align: left;
background-color: #ddd;
border: 1px solid #777;
font-family: tahoma;
font-size:90%;
font-weight: bold;
}
th.member {
padding: 0.1em 0.2em 0.1em 0.2em;
}
td.typeheader {
font-family: tahoma;
font-size: 100%;
font-weight: bold;
background-color: #17b;
color: white;
padding: 0 0.2em 0.15em 0.1em;
}
td.n { text-align: right }
a:link.typeheader, a:visited.typeheader, a:link.extenser, a:visited.extenser {
font-family: tahoma;
font-size: 90%;
font-weight: bold;
text-decoration: none;
background-color: #17b;
color: white;
float:left;
}
a:link.extenser, a:visited.extenser {
float:right;
padding-left:2pt;
margin-left:4pt
}
span.typeglyph, span.typeglyphx {
padding: 0 0.2em 0 0;
margin: 0;
}
span.extenser, span.extenserx {
margin-top:1.2pt;
}
span.typeglyph, span.extenser {
font-family: webdings;
}
span.typeglyphx, span.extenserx {
font-family: arial;
font-weight: bold;
margin: 2px;
}
table.group {
border: none;
margin: 0;
}
td.group {
border: none;
padding: 0 0.1em;
}
div.spacer { margin: 0.6em 0; }
table.headingpresenter {
border: none;
border-left: 3px dotted #1a5;
margin: 1em 0em 1.2em 0.15em;
}
th.headingpresenter {
font-family: Arial;
border: none;
padding: 0 0 0.2em 0.5em;
background-color: white;
color: green;
font-size: 110%;
}
td.headingpresenter {
border: none;
padding: 0 0 0 0.6em;
}
td.summary {
background-color: #def;
color: #024;
font-family: Tahoma;
padding: 0 0.1em 0.1em 0.1em;
}
td.columntotal {
font-family: Tahoma;
background-color:...