Когда я запускаю этот код в XE4, приложение заканчивается использованием ~ 800 МБ.Строки и использование большой памяти
Почему не ближе к 100 МБ?
Использование Ansistring вместо строки не имеет значения.
const
N = 10000000; // 10 million
M = 10;
var
i,j: integer;
s: string;
X: array of string;
begin
setlength(X,N);
for i:= 1 to N do
begin
s:= '';
for j:= 1 to M do s:= s+chr(65+random(25));
X[i-1]:= s;
end;
showmessage('pause');
end;
Мое предположение было бы фрагментации памяти ... но это действительно только предположение. – GabrielF
Да, заменив s: = s + на s [j]: = сбрасывает до 420 МБ, но все равно много пропадает. –
Что делать, если вы делаете 'X: Массив массива [1..10] Char'? Становится ли это лучше? – GabrielF