Zum Hauptinhalt springen

StringBuilder

Gibt es viele Änderungen an einem String sollte besser die StringBuilder Klasse verwendet werden. Bei einem String wird bei jeder manipulation ein neues Objekt erstellt, welches bei vielen Änderungen mehr Zeit in Anspruch nimmt, als den die StringBuilder klasse zu verwenden. Ein StringBuilder hat eine Standardkapazität von 16 Zeichen, welche direkt im Speicher reserviert werden. Reicht diese Kapazität nicht aus wird die Kapazität erst auf 32 Zeichen usw. erweitert. Dementsprechend erhöht sich dann auch der Speicherbedarf.

Beispiel zum Vergleich der Dauer

Stopwatch stopwatch = new Stopwatch();
string text = "";
stopwatch.Start();
for (int i = 0; i < 100_000; i++)
{
text += "*";
}
stopwatch.Stop();
Console.WriteLine($"Time Sting: {stopwatch.ElapsedMilliseconds} ms");

StringBuilder textStringBuilder = new StringBuilder();
stopwatch.Reset();
stopwatch.Start();
for (int i = 0; i < 100_000; i++)
{
textStringBuilder.Append("*");
}
stopwatch.Stop();
Console.WriteLine($"Time StingBuilder: {stopwatch.ElapsedMilliseconds} ms");

Kommentare