Доброго времини суток.
Вы не могли бы помочь вот в таком деле:
Создать обыкновенное приложение, в одном из методов вставить приблизительно такой код:
procedure Test;
var
ws: WideString;
StringIndex: Integer;
const
BIG_STRING: WideString = '123456789012345678901234567890123456789012345678901234567890' +
'123456789012345678901234567890123456789012345678901234567890' +
'123456789012345678901234567890123456789012345678901234567890' +
'123456789012345678901234567890123456789012345678901234567890' +
'123456789012345678901234567890123456789012345678901234567890' +
'123456789012345678901234567890123456789012345678901234567890' +
'123456789012345678901234567890123456789012345678901234567890' +
'123456789012345678901234567890123456789012345678901234567890' +
'123456789012345678901234567890123456789012345678901234567890' +
'123456789012345678901234567890123456789012345678901234567890';
STRINGS_COUNT = 1000;
begin
for StringIndex := 0 to STRINGS_COUNT — 1 do
begin
ws := ws + BIG_STRING;
end;
ws := '';
end;
Я знаю, код примитивный, но у меня он сьедает около 40Мб памяти. Я в полном замешательстве. Я знаю что принципы хранания String и WideString различны,
что при присвоении одного вайдстринга создается еще один, и в принципе логично куда уехало ~40МБ но вопрос, как мне эти 40Мб вернуть на родину?
Блин может я совсем уже запарился.
Спасибо.