Это зависит, если размер замены является larger than the string replaced.
StringBuilder над распределяет буфер, в то время как строка только когда-либо имеет как никогда большое количество символов в нем.
Свойство StringBuilder.Capacity - это количество символов, которое будет храниться в буфере, а StringBuilder.Length - сколько символов используется.
Обычно вы должны установить StringBuilder.Capacity для значения, большего, чем ожидаемая результирующая строка. В противном случае StringBuilder должен будет перераспределить свой буфер. Когда StringBuilder перераспределяет свой буфер, он удваивает его размер, а это значит, через пару перераспределяет это, вероятно, значительно больше, то он должен быть, по мощности по умолчанию начинается с 16
Установив значение емкости, когда вы start (например, в конструкторе) вы сохраняете перераспределение буфера StringBuilder. Вы можете использовать StringBuilder.MaxCapacity, чтобы ограничить максимальную емкость, к которой может быть добавлен StringBuilder.
StringBuilder.Replace должно использовать меньше памяти, но оно не будет более производительным, чем string.Replace http://www.codeproject.com/KB/cs/StringBuilder_vs_String.aspx –