![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Размер приложения в памяти
Antonn © (2005-05-12 07:03:00)Здравствуйте! Запускаю программу, смотрю в диспетчер задач, там моя программа занимает 13 мегабайт(примерно). делаю в программе application.minimize и после ресторе, и размер программы опускается до 3-4 мегабайт. Правда после переоткрытия окон, смены скинов и тп размер снова увеличивается. Так вот вопрос - что такое происходит при application.minimize и как можно этот эффект повторить без сворачивания окна(точнее можно свернуть главное, но не сворачивать остальные)?
vidiv (2005-05-23 08:46:00) [1]Кинь на форму кнопку, с таким обработчиком:
procedure TForm1.Button1Click(Sender: TObject);
var s:array of byte;
begin
SetLength(s, maxint div 8);
s[0]:=1+1;
caption := inttostr(s[0]);
// Последние две строки - имитация использования
end;
Запусти и нажми на кнопку. Программа естественно повиснет ненадолго, но после того как отойдет глянь сколько она занимает=)
Если не впечатлил, замениmaxint div 8наmaxint div 4.
у меня 2метровая прога "сжалась" до 800 кб =)
Antonn (2005-05-23 06:41:00) [2]MaFon (22.05.05 23:37) [11]
приложение, довольно требовательное.
Anatoly Podgoretsky (2005-05-22 23:54:00) [3]GrayFace © (16.05.05 15:41) [9]
Первые два для пользовательских данных, верхнии для системных, например системные длл и прочее, но все равно это свои, а не чужии, никому другому не принадлежат.
MaFon (2005-05-22 23:37:00) [4]А чта такое ФарКрай?
Bil Bal Dur (2005-05-16 17:21:00) [5]SetProcessWorkingSetSize(GetCurrentProcess,dword(-1),dword(-1));
GrayFace (2005-05-16 15:41:00) [6]Anatoly Podgoretsky © (12.05.05 9:04) [2]
Нет. Только 2GB. 3 от силы, начиная с 2000.
OSokin (2005-05-15 17:21:00) [7]Имхо, просто "замораживается" DC - не используется, и из-за этого снижается размер приложения в памяти. К тому же не происходит обращения к процедурам перерисовки.
Antonn (2005-05-13 07:52:00) [8]Anatoly Podgoretsky © (12.05.05 21:08) [6]
Ну не серьезно, какая то мелкая,
не достаточно мелкая, есть куда стремиться.
Я вот поэксперементировал, оказалось, после запуска/закрытия FarCry, моя прога, по идее, скидывается в виртуальную память, и размер виртуальной памяти увеличивается с 10 до 13,7 мегабайт и назад уже не уменьшается, даже если поднатужиться и довести размер программы с оперативке до 20 мегов.
Anatoly Podgoretsky (2005-05-12 21:08:00) [9]Antonn © (12.05.05 13:15) [4]
Ну не серьезно, какая то мелкая, другое дело мегабайт 500
debuger (2005-05-12 20:59:00) [10][4] asm?
Antonn (2005-05-12 13:15:00) [11]Skyle © (12.05.05 9:34) [3]
Ничего такого, что могло бы тебя заинтересовать...
Думаю, если уж спросил, значит заинтересовало
И вллбще, мне больше нравится, когда в диспетчере моя прога занимает не 13 а 4 мегабайта:)
Skyle (2005-05-12 09:34:00) [12]> Antonn © (12.05.05 07:03)
> что такое происходит при application.minimize
Ничего такого, что могло бы тебя заинтересовать...
Используемое место признано временно ненужным и ушло в swap.
Самый лучший способ разгрузить оперативку - сделать так, чтобы твоя программа ничего не делала ;-)
Anatoly Podgoretsky (2005-05-12 09:04:00) [13]Antonn © (12.05.05 07:03)
А чего ты волнуешь, все 4 гб твои, ни с кем не делятся.
GreatMaster (2005-05-12 08:19:00) [14]Сделай Вид - Выбрать столбцы - Размер ВИРТУАЛЬНОЙ памяти
и увидишь что он не меняется при минимизации.
а то что уменьшается при минимизации - это вроде как объём физ. памяти освобождается системой и скидывается в виртуальную, типа чтоб другим легче дышалось. Фигня вобщем :)