Текущий архив: 2008.10.19;
Скачать: CL | DM;
ВнизРазмер выделенной памяти для массива Найти похожие ветки
← →
VladSel (2008-01-21 07:15) [0]Здравствуйте
Вопрос простой: создаю массив с большим числом элементов и смотрю (в диспетчере задач) как меняется объём памяти занимаемой программой
procedure TForm1.Button1Click(Sender: TObject);
var len:integer;
int_arr:array of integer;
ext_add:array of extended;
byte_arr:array of byte;
begin
//Размер массива
len:=10000000;
//Integer SizeOf(Integer)=4 - размер с одной переменной
//Память
//Память + Виртуальная память = Всего
//3432+660=4092 Кб
//Выделяю память
SetLength(int_arr,len);
//Память
//Память + Виртуальная память = Всего
//42576+39772=82348 Кб
//АНАЛИЗИРУЕМ
//82348 - 4092 = 78256 Кб - Выделено на массив с данными (Integer)
//78256 / 10000000 = 8,0134144 байт на одну запись
// РАЗМЕР С ДАННЫМИ ЗАНИМАЕТ В 2 РАЗА БОЛЬШЕ МЕСТА ЧЕМ ДОЛЖНО БЫТЬ ??????????
//Очистили
SetLength(int_arr,0);
//extended SizeOf(extended)=10 - размер с одной переменной
//Память
//Память + Виртуальная память = Всего
//3468+660=4128 Кб
//Выделяю память
SetLength(ext_add,len);
//Память
//Память + Виртуальная память = Всего
//101288+98420=199708 Кб
//АНАЛИЗИРУЕМ
//199708 - 4128 = 195580 Кб - Выделено на массив с данными (extended)
//195580 / 10000000 = 20,027392 байт на одну запись
// РАЗМЕР С ДАННЫМИ ЗАНИМАЕТ В 2 РАЗА БОЛЬШЕ МЕСТА ЧЕМ ДОЛЖНО БЫТЬ ??????????
//Очистили
SetLength(ext_add,0);
//byte SizeOf(byte)=1 - размер с одной переменной
//Память
//Память + Виртуальная память = Всего
//3528+660=4188 Кб
//Выделяю память
SetLength(byte_arr,len);
//Память
//Память + Виртуальная память = Всего
//13312+10448=23760 Кб
//АНАЛИЗИРУЕМ
//23760 - 4188 = 19572 Кб - Выделено на массив с данными (extended)
//19572 / 10000000 = 2,0041728 байт на одну запись
// РАЗМЕР С ДАННЫМИ ЗАНИМАЕТ В 2 РАЗА БОЛЬШЕ МЕСТА ЧЕМ ДОЛЖНО БЫТЬ ??????????
//Очистили
SetLength(byte_arr,0);
end;
подскажите где я ошибаюсь
← →
Loginov Dmitry © (2008-01-21 08:02) [1]> подскажите где я ошибаюсь
> SetLength(int_arr,len);
> //Память
> //Память + Виртуальная память = Всего
> //42576+39772=82348 Кб
Виртуальная память - это вся память, выделенная процессу. Она складывается из физической памяти (ОЗУ) + памяти, сброшенной в файл подкачки. То, что 42576+39772=82348 - это неверно. На самом деле общее потребление составляет 39772. А то, что потребление физической памяти оказалось больше, чем потребление виртуальной - так просто диспетчер задач высчитывает, не верь ему! :)
← →
Leonid Troyanovsky © (2008-01-21 13:41) [2]
> VladSel (21.01.08 07:15)
> и смотрю (в диспетчере задач) как меняется объём памяти
Perfmon.exe forever.
--
Regards, LVT.
← →
homm © (2008-01-21 13:54) [3]> [0] VladSel (21.01.08 07:15)
> смотрю (в диспетчере задач) как меняется объём памяти занимаемой
> программой
Ты сначала смотрелку отрасти, потом будешь хвастатся, мол чето углядел. Смотрю в книгу, вижу фигу называется.
> //Память + Виртуальная память = Всего
Память + Виртуальная память <> Всего
Это ты сам выдумал.
Виртуальная память = Всего
Вот так верно.» Юрий Зотов:» Пожалуйста, повежливее. Не заставляйте принимать меры, это никому не нужно.
← →
KSergey © (2008-01-21 14:31) [4]> homm © (21.01.08 13:54) [3]
> Ты сначала смотрелку отрасти
А толстой писькой не надоело трясти из ветки в ветку?
← →
homm © (2008-01-21 15:02) [5]> [4] KSergey © (21.01.08 14:31)
> А толстой писькой не надоело трясти из ветки в ветку?
Меня в детстве били, теперь я злой на весь мир.
← →
clickmaker © (2008-01-21 15:06) [6]
> Меня в детстве били
трудное децтво, деревянные игрушки, прибитые к потолку? )
← →
homm © (2008-01-21 15:08) [7]> [6] clickmaker © (21.01.08 15:06)
> деревянные игрушки, прибитые к потолку? )
Хуже, к потолку :)
← →
homm © (2008-01-21 15:10) [8]> [6] clickmaker © (21.01.08 15:06)
Блин, прочитал по привычке «к полу» :)
← →
MetalFan © (2008-01-21 16:38) [9]тогда уж сразу чугунные и к потолку)
← →
Anatoly Podgoretsky © (2008-01-21 18:37) [10]> homm (21.01.2008 15:02:05) [5]
Мужик меняет колесо в пустыне, тут подлетает фея и говорит -
Хочешь потрахаться?
Мужик конечно
Фея пшик, пшик, пшик по все колесам.
А ты хочешь потрахаться, устроим.
← →
homm © (2008-01-21 20:33) [11]> [10] Anatoly Podgoretsky © (21.01.08 18:37)
Очень познавательно.
Страницы: 1 вся ветка
Текущий архив: 2008.10.19;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.005 c