depende si el tamaño de la sustitución es larger than the string replaced.
El StringBuilder sobre asigna su memoria intermedia, mientras que una cadena única vez tiene cómo cada vez son muchos caracteres en ella.
La propiedad StringBuilder.Capacity es la cantidad de caracteres que contendrá el búfer, mientras que StringBuilder.Length es cuántos caracteres están en uso.
Normalmente, debe establecer StringBuilder.Capacity en un valor mayor que la cadena resultante esperada. De lo contrario, StringBuilder necesitará reasignar su búfer. Cuando el StringBuilder reasigna su memoria intermedia, se duplica en tamaño, lo que significa que después de un par reasigna es probable que sea significativamente más grande que tiene que ser, por la capacidad por defecto comienza a las 16.
Al establecer el valor de la capacidad cuando se start (en el constructor por ejemplo) guarda las reasignaciones del buffer de StringBuilder. Puede usar StringBuilder.MaxCapacity para limitar la capacidad máxima a la que se puede expandir un StringBuilder.
StringBuilder.Replace debería usar menos memoria, pero no será más eficiente que la cadena.Replace http://www.codeproject.com/KB/cs/StringBuilder_vs_String.aspx –