Strigbuilderは、文字列の連結によって引き起こされるメモリの問題に対する完全に優れたソリューションです。
特定の質問に答えるために、Stringbuilderには、文字列の長さが現在割り当てられているStringbuilderバッファーの長さに等しい通常の文字列と比較して、一定のサイズのオーバーヘッドがあります。バッファは、結果として生じる文字列の2倍のサイズになる可能性がありますが、バッファがいっぱいになるまでStringbuilderに連結するときにメモリ割り当てが行われないため、これは本当に優れたソリューションです。
文字列と比較して、これは傑出しています。
string output = "Test";
output += ", printed on " + datePrinted.ToString();
output += ", verified by " + verificationName;
output += ", number lines: " + numberLines.ToString();
このコードには、コードにリテラルとして格納された4つの文字列があります。2つはメソッドで作成され、1つは変数から作成されますが、6つの別々の中間文字列を使用します。このパターンを継続すると、GCが起動してクリーンアップするまで、指数関数的にメモリ使用量が増加します。