Вопрос по управлению память в Windows...
От: GDDevcpp  
Дата: 07.04.11 21:09
Оценка: :)
Сразу хочу извиниться — возможно, вопрос "ламерский", но... Волею судеб приспичило мне сваять программку вроде mail checker-а, которая отъедала бы памяти чем меньше, тем лучше. Собственно, задача плёвая — библиотек, работающих с POP3, IMAP и т.д. — более, чем достаточно. А уж спрятать окно в системный трэй и просигнализировать иконкой о пришедшей почте — и говорить не приходиться. В общем, в свободное от досуга время приступил. Сделал окошко, спрятал в трэй (ShowWindow с SW_HIDE). Решил посмотреть, а сколько, собственно, оно там памяти держит? 1,5 Мб. "Вожатый удивился, трамвай остановился." Дело в том, что ровно столько же занимается памяти в случае нормального размера окна! Решил посмотреть, сколько окошко будет "весить" в памяти, если его не HIDE, а MINIMIZE. Посмотрел — примерно 160 Кб. Почесал репу и запустил окно сначала MINIMIZE, а потом сразу HIDE. То есть, сначала минимизировал в tasсkbar, затем сразу прятал в system tray. Посмотрел занимаемую память — 160 Кб. Что ж, всё-таки 160 кило — это меньше 1,5 мегов. Но вопрос остался: почему спрятанное сразу окно занимает в памяти столько же, как и показанное? Его же не надо отрисовывать! При том, что почти вся память освобождается, когда его (окно) минимизируешь. Кто-нибудь скажет, что происходит?

Для справки:
1. Используемый язык: C
2. Используемый инструмент: MinGW
3. Используемая IDE: Code::Blocks
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.