Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что такое StringBuilder.Capacity ? Что такое StringBuilder.Capacity ? 
:(
    Опции темы
jeans1986
Дата 1.10.2007, 07:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 165
Регистрация: 31.3.2007

Репутация: нет
Всего: нет



Что такое StringBuilder.Capacity ? Как это свойство работает? Заранее благодарю.
PM MAIL   Вверх
yar
Дата 1.10.2007, 07:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 8.9.2007
Где: Одесса, Украина

Репутация: 2
Всего: 8



Capacity -- это максимальное число символов, выделенных в памяти для хранения строки StringBuilder-ом. По мере надобности он динамически выделяет ещё памяти, и увеличивает Capacity. В большинстве случаев это то, что и надо. Однако можно указать StringBuilder-у выделить больше памяти, чем он это делает, например, в целях производительности, если мы реально заранее знаем, сколько нам её понадобится (памяти).
--------------------
Если бы строители возводили здания так, как программисты пишут программы, первый же дятел уничтожил бы мировую цивилизацию.Джеральд Вайнберг
PM MAIL WWW   Вверх
zaver
Дата 1.10.2007, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 204
Регистрация: 15.8.2005

Репутация: 1
Всего: 3



рекомендуют задавать Capacity простые числа, так он будет более эффективно работать.
PM MAIL WWW ICQ Skype YIM MSN   Вверх
archeg
Дата 1.10.2007, 22:07 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 6.1.2007
Где: Киев

Репутация: 4
Всего: 27



Цитата(zaver @  1.10.2007,  20:54 Найти цитируемый пост)
рекомендуют задавать Capacity простые числа, так он будет более эффективно работать. 

 smile А откуда такая инфа?

Насколько помню (искал в мсдн, чет не нашел) StringBuilder по-умолчанию (когда MaxCapacity не задается) задает какое-то Capacity - больше чем слово, которое сейчас находится в StringBuilder. Это позволяет ему не расширяться при каждом добавлении символа - что довольно сильно увеличивает скорость работы. И эти числа он выбирает кажись степени двойки. Не понимаю какой смысл в ускорении при использовании простых числе smile 


--------------------
ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru)

Дядька всегда можно спросить в аське, если не задалбывать - не откажет smile
И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои  ;)
PM MAIL ICQ Jabber   Вверх
tol05
Дата 1.10.2007, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 36
Всего: 170



zaver, попутал Capacity и HashTable.
нижеприведенная цитата отсюда
Цитата

Каждый раз при добавлении элемента в хеш-таблицу происходит проверка, не превосходит ли уровень заполнения заданного значения. Если данный факт имеет место, то хеш-таблица расширяется (is expanded). Расширение происходит в два этапа:

   1. Число ячеек хеш-таблицы приблизительно удваивается. Более точно, число ячеек увеличивается с текущего простого числа до следующего простого числа, хранящегося во внутренней таблице is (вспомним, что для надлежащей работы процесса повторного хеширования необходимо, чтобы размер хеш-таблицыбыл простым числом) 
    2. ...

Вам понятно, привередливый archeg?  smile  smile 


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
zaver
Дата 1.10.2007, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 204
Регистрация: 15.8.2005

Репутация: 1
Всего: 3



точно! каюсь
PM MAIL WWW ICQ Skype YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0748 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.