Конкатенация с StringBuilder

Это от вид ресурсы разумно использовать StringBuilder уже для concat две строки или является там минимальной конкатенацией операции, который делает StringBuilder эффективным?

7
задан Heinz K 9 July 2010 в 21:53
поделиться

4 ответа

String.Join - самый быстрый, поскольку он выделяет всю необходимую память за одну операцию. См. эту статью: StringBuilder против String / Быстрые операции со строками в .NET 2.0

6
ответ дан 6 December 2019 в 06:13
поделиться

Если вы задаете этот вопрос, вы, вероятно, принимаете решение о том, какую технику использовать для получения хорошей производительности.

Если вы пытаетесь добиться хорошей производительности, то у вас, вероятно, есть набор тщательно разработанных тестов производительности, которые четко показывают различия между двумя разными техниками, измеренные по набору реалистичных, ориентированных на пользователя сценариев производительности.

Если у вас есть такой набор, зачем вы нас спрашиваете? Просто запустите его в обоих вариантах и посмотрите, какой из них дает лучшую производительность!

Если у вас нет такого набора, вы никогда не добьетесь хорошей производительности от медленного приложения, задавая вопросы случайным людям в интернете, которые не знают ни ваших клиентов, ни вашего кода, ни ваших сценариев. Создайте себе тщательно разработанный набор тестов производительности, который позволит вам измерить разницу между двумя методами и сравнить ее с реалистичным набором целей производительности, ориентированных на пользователя.

6
ответ дан 6 December 2019 в 06:13
поделиться

Конкатенация двух строк с помощью StringBuilder не даст вам никаких преимуществ, поскольку результат все равно должен быть преобразован в строку - поэтому конкатенация напрямую - это одно выделение + две копии. StringBuilder не может сделать ничего лучше - только загромождает код.

6
ответ дан 6 December 2019 в 06:13
поделиться