Приложение Winform, минимизирует ли окно принудительную сборку мусора? - PullRequest
3 голосов
/ 08 февраля 2011

Вот сценарий, приложение winforms, мониторинг через вкладку процессов диспетчера задач.

При первом запуске вращается до ~ 61 000 К (начальная сетка данных и загрузка данных) Если я минимизирую приложение, не трогая и не делая ничего, использование Mem уменьшается до 1380K. Когда я восстанавливаю приложение, оно вращается до 5,8K

Итак, мой вопрос: минимизирует ли отправка какое-то внутреннее сообщение для очистки ресурсов, так как рассматриваемое приложение не в фокусе?

Первым приложением, в котором я заметил это, было VB.NET, но я наблюдал такое же поведение в моих основных приложениях на C # winform.

1 Ответ

7 голосов
/ 08 февраля 2011

Вы смотрите на неверную статистику памяти.Это «рабочий набор», объем виртуальной памяти, который сопоставлен с физической памятью.БАРАН.Windows настойчиво обрезает рабочий набор, когда обнаруживает, что основное окно свернуто.Предполагается, что пользователь не будет использовать программу некоторое время, поэтому он отображает страницы из ОЗУ, чтобы освободить место для других процессов.Когда вы возвращаете фокус, Windows отображает обратно только те страницы памяти, которые действительно необходимы.Что не так много, когда приложение бездействует.

Сборка мусора - это операция виртуальной памяти.

...