Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.15;
Скачать: CL | DM;

Вниз

Странности с памятью   Найти похожие ветки 

 
Zoom   (2005-12-05 20:50) [0]

Есть 2 exe"шника, различающиеся 2 строками. Вот лежат: http://rulezmaker.fatal.ru/mp3.rar (145kb)
Для работы с иконкой в трее обрабатывается cворачивание/разворачивание формы.

procedure Tform1.dominimize;
begin
Form.WindowState:=wsMinimized;
Form.HIDE;
end;

procedure TForm1.domaximize;
begin
Form.WindowState:= wsNormal;
Form.Show;
end;

Так я делаю в первом случае. А во втором все то же, но без строчек с изменением Form.WindowState. Если вы запустите эти програмы у себя, то сможете заметить в taskmanager"е, что при сворачивании 1я занимает всё такое же кол-во памяти (у меня от 3 до 4,5 кб), а 2я начинает занимать гораздо меньше - от 300 до 900б. Вопрос: Почему? У меня такое чувсттво, что дело здесь именно в KOL. Кстати, программы сжаты, в несжатом состоянии то же самое.


 
Thaddy   (2005-12-06 17:23) [1]

Because Windows cached - part of- the screen of your application as a bitmap. a 600 Kb bitmap ;)


 
Ajax ©   (2005-12-06 21:23) [2]

KOL не при чем. Попробуй свернуть любую программу на панель задач - результат тот же. Да и "занимаемая память" и то, что показыват "taskmanager" совершенно разные вещи.


 
Zoom   (2005-12-06 22:53) [3]

Ok. So windows only caches my window if i hide"em? How can i avoid caching or what can i do to keep memory clear?


 
homm ©   (2005-12-09 18:58) [4]

Тебе просто нужно почитать хорошую книжку про виртуальную память, обращая внимание на "рабочие множества" приложений. Кстати единици измерения не врные, наверное всеже 300-900 килобайт. Также рекомендую Вид->Выбрать столбцы->Объем виртуальной памяти.

2Thaddy
Этот битмар находится в видео памяти и не входит в рабочее множество.


 
Barloggg   (2005-12-16 13:37) [5]

но вообще звучит логично, если форму сначала свернуть, то винда сделает с нее битмап-копию для того чтобы применить какую-нибудь хитрую анимацию.

Это кстати можно проверить. Если винда XP то отключить все графические навороты и запустить проги еще раз.


 
Zoom   (2005-12-20 01:49) [6]

У меня и так все, что можно, отключено. Насколько я понимаю, практических советов нет?


 
fellix   (2005-12-20 13:28) [7]

Zoom   (20.12.05 01:49) [6]
> ...практических советов нет?

В смысле, как уменьшить объем занимаемой памяти?
Ну, например, добавить в dominimize вызов
SetProcessWorkingSetSize(GetCurrentProcess, DWORD(-1), DWORD(-1));


 
homm ©   (2005-12-22 21:38) [8]


> Насколько я понимаю,  практических советов нет?
А я тебе разве не практический совет дал - почитай умные книжки про виртуальную память, в любом случае это будет для тебя полезно, плюс перестанешь на подобного рода глупости время тратить.


 
Boguslaw   (2005-12-23 16:06) [9]

As I know Delphi memory manager allocates about 1 MB from start to "faster" use it when requested.Is it true ?
How about compare it creating empty application (need some while 1=1 do; loop to prevent program end) in Delphi and in C ?



Страницы: 1 вся ветка

Текущий архив: 2006.10.15;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.041 c
3-1155540931
infom
2006-08-14 11:35
2006.10.15
MS Access Запрос с более 255 полями.


2-1159628079
pqpqp
2006-09-30 18:54
2006.10.15
if else


1-1157537466
SkyN
2006-09-06 14:11
2006.10.15
Как юзать тип MAP из C++,нужно для импорта функции из другой прог


15-1158740484
Layner
2006-09-20 12:21
2006.10.15
Должны ли банки после погашения кредита выдавать справки о его


15-1159162625
Ega23
2006-09-25 09:37
2006.10.15
С Днём рождения! 25 сентября





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский