Этот вопрос возник сегодня как дубликат другого, но я заметил, что одна часть не получила ответа. По умолчанию (при условии, что это означает, что «когда он не создан со строкой, которая достаточно велика, чтобы требовать этого»), как говорили люди, это 16, но я не вижу здесь ничего, когда вы должны изменить его.
Вы меняете его, когда это возможно, в качестве возможной оптимизации. Действительно, выбор 16 противоположен оптимизации. Оптимизация - это выбор значений и подходов таким образом, чтобы они особенно хорошо подходили для конкретного случая или подмножества возможных случаев (обычно не «ускоряя процесс», хотя мы часто используем это слово). Здесь разработчику класса пришлось иметь дело с обобщением - выбором значений и подходов, чтобы обеспечить достаточно хорошую производительность в широком диапазоне случаев.
Чем меньше они ушли, тем меньше использования памяти.
Чем они больше, тем меньше перераспределения для обработки больших строк.
Есть несколько причин, по которым бинарный раунд (целые степени двух) в некоторых случаях может дать лучшую производительность, чем другие числа, поэтому они выбрали одну из них, но этот выбор, кроме выбора между 4, 16 или 1024, был вопрос баланса различных вероятных значений.
Кто-то , использующий StringBuilder
вместо того, чтобы проектировать его, может лучше понять, какого размера он может понадобиться.
Если они собираются на Append
5 однозначных чисел вместе со строками длиной до 43 символов, то общая длина StringBuilder
составит 48 символов, независимо от того, что, поэтому они должны использовать емкость 48 при 48 всегда самый эффективный размер для струны длиной 48
Если они делают что-то, что может иметь длину от 23 до 34 символов, они должны использовать 34.
Если они делают что-то, что, вероятно, никогда не будет более 60 символов, но время от времени они могут быть, они должны использовать 64 (не перераспределять для большинства частей, и получить преимущество степени два) упомянуто выше для нескольких случаев, когда вы делаете).
Если по этому вопросу невозможно прийти к выводу или, по крайней мере, трудно это сделать, а не по горячим точкам производительности, вам следует просто использовать значение по умолчанию.