Я наблюдал значительный прирост производительности при использовании вызова метода EnsureCapacity(int capacity)
в экземпляре StringBuilder
перед его использованием для хранения строк. Я обычно называю это в строке кода после создания экземпляра. Это имеет тот же эффект, как если бы вы создали экземпляр StringBuilder
следующим образом:
var sb = new StringBuilder(int capacity);
Этот вызов заблаговременно выделяет необходимую память, что приводит к меньшему выделению памяти во время нескольких операций Append()
. Вы должны сделать обоснованное предположение о том, сколько памяти вам понадобится, но для большинства приложений это не должно быть слишком сложным. Я обычно ошибаюсь из-за того, что у меня слишком много памяти (мы говорим 1к или около того).