Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2006.10.15;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "KOL";
Текущий архив: 2006.10.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.033 c
4-1148964758
Шмель
2006-05-30 08:52
2006.10.15
Сохранение позиции окна


15-1158849426
Колдун
2006-09-21 18:37
2006.10.15
Задача по теории вероятности


15-1158866149
Kolan
2006-09-21 23:15
2006.10.15
Помогите заменить массив ChechBox массивом Boolean


11-1135681340
Flea
2005-12-27 14:02
2006.10.15
KOLGets ?


15-1159026946
Alx2
2006-09-23 19:55
2006.10.15
"Раздумья ездового волка"





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский