How to improve StringBuilder performance in C#

Strings are immutable types in .NET. Whenever you modify a String object in .NET, a new String object is created in memory to hold the new data. By contrast, a StringBuilder object represents a mutable string of characters, and expands its memory allocation dynamically as the size of the string grows.

The String and StringBuilder classes are two popular classes that you will use frequently when working with strings in .NET Framework and in .NET Core. However, each has its benefits and downsides.

In an earlier post here, I discussed how these two classes compare and when one should be used in lieu of the other. In this article I’ll discuss how you can improve the performance of StringBuilder in C#.

BenchmarkDotNet is a lightweight, open source library for benchmarking .NET code. BenchmarkDotNet can transform your methods into benchmarks, track those methods, and then provide insights into the performance data captured. We’ll take advantage of BenchmarkDotNet to benchmark our StringBuilder operations in this post.

To work with the code examples provided in this article, you should have Visual Studio 2019 installed in your system. If you don’t already have a copy, you can download Visual Studio 2019 here.

Create a console application project in Visual Studio

First let’s create a .NET Core console application project in Visual Studio. Assuming Visual Studio 2019 is installed in your system, follow the steps outlined below to create a new .NET Core console application project.

Copyright © 2021 IDG Communications, Inc.

Source link