When I was looking at decompiled .NET assemblies to see some internals, I\'ve noticed interesting StringBuilderCache
class used by multiple framework\'s methods:
Most strings built are probably small, so using a relatively small buffer size will cover most of the operations while not using up too much memory. Consider that there is a thread pool with possibly many threads being created. If every one of them would take up to 2kB for a cached buffer, it would add up to some amount of memory.