![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Строки [D6, Win95/98, Win2k]
ZavDim © (2002-06-06 17:44:00)У меня такая штука:
Один код крутит одни и те же строки(большие до 1 Мб), я их постоянно меняю по содержанию, использую SetLength. Что происходит со старым содержимым? Дело в том, что растут расходы памяти и в 2000й ничего, а в 98 прога рушится. Может Дельфа их где-то откладывает?
ZavDim (2002-06-10 06:42:00) [1]Вся проблема была в GDI 98. строки работают ОК.
Кстати, помогла прога NailS. Спасибо.
ZavDim (2002-06-07 12:35:00) [2]Спасибо - попробую.
Штука еще такая - Смотрю диспетчер:
После запуска и работы программы памяти выделилось дополнительно 200 Мб, а процесс занимает 24 Мб. Куда идут другие 176?
NailS (2002-06-07 10:10:00) [3]Строка в чем то похожа на интерфейс, она содержит счетчик указателей на себя и когда он равен 0 освобождается.
см. UniqueString();
Утечки памяти искать спец.средствами, например http://www.automatedqa.com/downloads/memproof.asp.
ZavDim (2002-06-07 06:53:00) [4]1. SetLength - я думаю понятно зачем. Это не 255 string.
2. Это видимо да. А что делать?
3. M:=TMemoryStream.Create;
M.LoadFfomFile(NameFile);
SetLength(STEXT, M.Size);
M.ReadBuffer(STEXT[1], M.Size);
M.Free;
Пока так.
kull (2002-06-06 18:24:00) [5]
> Fiend (06.06.02 18:02)
А как ты в string прочитаешь содержимое TMemoryStream?
McSimm (2002-06-06 18:04:00) [6]Увеличивается фрагментация памяти
Fiend (2002-06-06 18:02:00) [7]непойму, зачем тогда делаешь SetLength если юзаешь стринги???
Как ты с нимим оперируешь?
Может тебе лучше использовать PChar - отломи им памяти скока нуна, если что добавишь при необходимости!?
ZavDim (2002-06-06 17:46:00) [8]Причем именно String.