Почему использование памяти приложения .NET, похоже, падает, когда оно минимизировано?

Например, запустите Paint.NET. Затем посмотрите на использование памяти в диспетчере задач: на моем компьютере он использует 36 МБ.

Затем скройте Paint.NET: теперь он занимает всего несколько больше, чем 1Mb.

Это происходит с каждым .NET-приложением. Что происходит, когда приложение .NET минимизировано? Возникает ли GC?

Ответ 1

Диспетчер задач показывает объем памяти, принадлежащий приложению, который в данный момент вызывается в реальную память. Когда вы сворачиваете приложение в Windows, ядро ​​автоматически обрезает рабочий процесс, поэтому требуется меньше памяти. Это поведение не относится к приложениям .NET.

Если вы посмотрите вместо этого на значение "Private Bytes" процесса, это даст вам лучшее представление об объеме памяти, используемой процессом. Это значение не изменится при обрезке рабочего набора.

Microsoft предлагает дополнительную информацию в этой статье базы знаний: http://support.microsoft.com/kb/293215