![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Память
Алексей Носов © (2007-09-12 10:55:00)Интересную ситуацию заметел. Написал программу, в ней использовал набитый ListView, ComboBox. И вот что странно при старте и последующей работе судя по window task manager кушает мое приложение пять с лишним Мб, но если свернуть программу, а потом развернуть, то потребелние памяти снижаетя. Что такое происходит?
homm (2007-09-12 11:40:00) [1]При сворачивании диспетчер памяти старается отбить у процесс дополнительное пространство, помечая страницы, к которым небыло обращения некоторое время как «свободные».
Когда какому-либо приложению они понядобстяся, они сбрасываются в своп. Если такие помеченые блоки вновь понадобятся вашему преложению, они просто пометятся как занятые, или подгрузятся из свопа, если до этого были туда сброшены.
Так что ни выделеного адресного пространства, ни памяти в ОП у приложения при сворачивании меньше не становится. Если память понадобится, ее отоберут даже у несвернутого приложения.
Anatoly Podgoretsky (2007-09-12 11:31:00) [2]
> меня тоже вопрос интерисует, почему когда разворачиваеш
> программу она занимает места меньше чем до сворачивания,
> ведь развернув она должна забрать себе потереную при сворачивании
> память
Данное предположение в принчипе неправильно, памяти (оперативной) будет занято столько, сколько потребуется страниц, может быть меньше (как правило) но может быть и больше.
Не надо путать оперативную память с виртуальной, это предположение верно только для виртуальной, а она не меняется в общем случае.
iam (2007-09-12 11:28:00) [3]кстати вот [10] по-моему дал ответ близкий к истине
Вася Правильный (2007-09-12 11:27:00) [4]
> alshtam © (12.09.07 11:14) [4]
назад отдается только память, к которой было обращение при разворачивании
потом, по мере обращения к другим участкам будет отдана и другая память
iam (2007-09-12 11:27:00) [5]можно посмотреть ещё Process Explorer-ом например на предмет чудачеств виндовского такс манагера
homm (2007-09-12 11:23:00) [6]> я смотрю столбцы память и вирт память и складываю их
Зачем?
> даже искал способы решить проблему
Какую проблему? Проблема в том, что диспетчер задачь показывает цифры, значение которых ты не знаешь? Эта проблема решается просвелением.
alshtam (2007-09-12 11:21:00) [7]я смотрю столбцы память и вирт память и складываю их
> Чушь.
тогда я с ума сошел :)
я списывал это на дефрагментацию памяти, даже искал способы решить проблему. потом плюнул на это
alshtam (2007-09-12 11:18:00) [8]нет,
до сворачивания 100 м
после сворачивания 50 м
после разворачивания 75 м
(К примеру)
homm (2007-09-12 11:18:00) [9]> то потребелние памяти снижаетя.
Не снижаеться, не бойся. То что ты видишь в таск менеждере не есть количество выделеной твоему приложению памяти. Если интересно, зайди в опции и выбери столбец «виртуальная память».
> [2] iam (12.09.07 11:07)
Чушь.
> [3] clickmaker © (12.09.07 11:07)
> виндозный диспетчер памяти сбрасывает в своп
Не совсем так.
> [4] alshtam © (12.09.07 11:14)
> почему когда разворачиваеш программу она занимает места
> меньше чем до сворачивания,
Чушь.
iam (2007-09-12 11:16:00) [10]а если два раза свернуть и развернуть ещё меньше памяти потреблять будет?
alshtam (2007-09-12 11:14:00) [11]меня тоже вопрос интерисует, почему когда разворачиваеш программу она занимает места меньше чем до сворачивания, ведь развернув она должна забрать себе потереную при сворачивании память
iam (2007-09-12 11:07:00) [12]когда программа активна ей дают все ресурсы которые ей нужны и которые система может и хочет ей дать, когда неактивна ресурсы можно отдать другим активным программам или просто забрать до момента активации
логично?
clickmaker (2007-09-12 11:07:00) [13]
> но если свернуть программу, а потом развернуть, то потребелние
> памяти снижаетя
виндозный диспетчер памяти сбрасывает в своп для свернутых, дабы освободить оперативку для активных приложений
Если в двух словах: менее приоритетным задачам - меньше памяти
Сергей М. (2007-09-12 11:04:00) [14]
> Что такое происходит?
>
Это нормально, так и должно быть.