String / StringBuilder, какой объем вы используете один над другим - PullRequest
0 голосов
/ 30 октября 2009

Время рефакторинга в пятницу !!!

У меня есть объект, который я использую для генерации операторов SQL.

oDb. From устанавливается один раз. Затем метаданные могут со временем добавлять соединения, пока мы не объединим их и не передадим обратно.

Итак, вопрос в том, сколько раз я сохраняю синтаксис oDb.From + =, прежде чем заменить его на sbFrom.Append ()

Это # 3, 4 или 15 раз?

Или это действительно проблема содержания, и если да, то что такое магический #?

ТИА

Ответы [ 6 ]

4 голосов
/ 30 октября 2009

Абсолютно ненаучное эмпирическое правило: я бы сделал это для чего-то более чем из трех элементов - не из-за повышения производительности, а скорее из-за (надеюсь) полезной привычки.

1 голос
/ 30 октября 2009

Чтение http://www.codinghorror.com/blog/archives/001218.html

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

Скорее всего, для той длины строк, с которой вы имеете дело, она вообще не будет иметь никакого значения - просто используйте то, что вам удобнее всего.

1 голос
/ 30 октября 2009

Если мне нужно добавить более двух элементов в строку, я почти всегда использую StringBuilder (я считаю, что если я добавлю более двух, неизбежно будет больше, когда люди начнут добавлять в мой код ... так что StringBuilder уже там для них).

0 голосов
/ 30 октября 2009

Я использую StringBuilder, когда число конкатенаций в алгоритме превышает O (n). Если число конкатенаций равно O (1), большую часть времени читаемость теряется даром (за исключением случаев, когда строка очень большая, что не очень часто).

Или когда я узнаю, что есть строка, которая станет достаточно большой. (Более 100 тыс. Символов)

0 голосов
/ 30 октября 2009

Это не совсем ненаучно - однажды я прочитал статью, где в .NET строитель строк становится более эффективным после 5 объединений. Это когда я обычно использую String Builder.

Кроме того - я думаю, что читаемость действительно играет роль в этом, и я также предпочитаю формат строки в некоторых случаях над обоими.

0 голосов
/ 30 октября 2009

Я бы сказал, что все, что вы ожидаете, будет иметь длину более 1-5 МБ или что-то, что выделяет много строк в маленьких кусочках.

...