Запускаем код и радуемся результатам:
type
ar=array[1..65456] of byte;
ar2=array[1..327600] of byte;
var p:^ar;
p2:^ar2;
begin
writeln('Free memory before allocation: ',GetHeapStatus.TotalFree);
new(p);
writeln('Free memory after allocation: ',GetHeapStatus.TotalFree);
dispose(p);
writeln('Free memory after dispose: ',GetHeapStatus.TotalFree);
new(p2);
writeln('Again allocation: ',GetHeapStatus.TotalFree);
dispose(p2);
writeln('Again dispose: ',GetHeapStatus.TotalFree);
readln;
end.
Системный блок раскручивать необязательно - все изменения проходят на программном уровне.
P.S. Не знаю как энергия, но память из ниоткуда можно получить.. Fpc is the best
P.P.S.
Причина, наверно, кроется вот в чем:
Нажмите для просмотра прикрепленного файла
Т.е. тип cardinal, возвращаемый методом TotalFree, не имеет постоянного размера, и меняется в зависимости от присваиваемого значение. Имхо.
Так вот, вопрос: как в Fpc измерять разницу свободной памяти до и после размещения в ней данных, без всяких таких казусов?