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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> тип string - увеличение внутреннего буфера, возможно ли такое в шарпее ? 
:(
    Опции темы
12usver12
Дата 22.3.2012, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



суть проблемы следующая , есть проект где есть переменная 
string res = ...
это переменная очень часто задействована и бывает постепенно увеличивается до 60-300 кб ( string += value + .....)
и, соответственно, этот процесс сопровождается большими тормозами, а все из-за внутреннего устройства класса string:
при этом постоянно анализируется и "перевыделяется" (HeapRealloc) этот внутренний рабочий буфер.
Есть ли вообще возможность как-то задать этот буфер в начале выделения переменной или вообще в текущем проекте ?
  
PM MAIL   Вверх
dextermd
Дата 22.3.2012, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Можно задать буфер если работать с классом StringBuilder:
Код

// инициализируем StringBuilder с буфером в 100 символов
StringBuilder builder = new StringBuilder(100); 
builder.Append("Hello"); 
builder.Append(" World");
string res = builder.ToString(); 

PM MAIL   Вверх
12usver12
Дата 22.3.2012, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



ясно , в том то и дело что в проекте слишком все завязано на этой переменной и проблематично менять на потоковые реализации 
пока покопаю в направлении http://forum.vingrad.ru/topic-126720.html
PM MAIL   Вверх
Stolzen
Дата 23.3.2012, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

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



Не копайте, вряд ли что раскопаете. Строки в C# - immutable, что означает, что каждый раз при конкатенации создается новая строка в памяти. Используйте StringBuilder.


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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