#c_sharp #wpf #ram
При запуске программы стартовое окно занимает 17 мб оперативной памяти, из стартового окна создается новое, которое занимает 88 мб оперативной памяти, если закрыть это окно и вернуться к стартовому, то объем занятой памяти всё равно будет равен 88 мб. Как освободить оперативную память после закрытия окна?
Ответы
Ответ 1
В .NET память не освобождается в момент "закрытия окна". Объекты остаются висеть в куче до тех пор, пока их не зачистит сборщик мусора. Его можно заставить это сделать вызовами: GC.Collect(); GC.WaitForPendingFinalizers(); И даже после освобождения памяти в управляемой куче - рантайм может не сразу отдать освободившуюся память системе - а вдруг вы ее опять захотите выделить. Тем более что "выделенная память" - это не конкретные куски памяти на микросхеме, а просто зарезервированный в огромном виртуальном адресном пространстве кусочек.
Комментариев нет:
Отправить комментарий