Восстановить память из w3wp.exe - PullRequest
2 голосов
/ 29 июля 2010

Возможно ли восстановить потерянную память от w3wp.exe? Я думал, что session.abandon () должен очистить ресурсы, как это? Дело в том, что у меня есть веб-приложение, некоторые страницы делают w3wp.exe значительно расти. Как от 40 МБ до 400 МБ. Теперь я собираюсь демонстративно оптимизировать мой код, чтобы уменьшить это, однако, для какого бы размера w3wp.exe не рос, нет ли способа восстановить потерянную память, даже если пользователь вышел из системы и закрыл браузер?

Я знаю, что этот рабочий процесс будет перезапущен через 30 минут (по умолчанию) простоя, но что, если длительное время простоя не используется и рабочий процесс все еще имеет эту часть памяти, он просто продолжает расти ? Есть мысли, люди?

Ответы [ 2 ]

0 голосов
/ 29 июля 2010

, если вы не вытекли из памяти, диспетчер памяти будет повторно использовать эту память, поэтому вы не должны видеть, что память процесса продолжает расти.

0 голосов
/ 29 июля 2010

Сборщик мусора позаботится о том, какая память должна быть освобождена, при условии, что вы правильно расположили вещи и т. Д. GC не пинается каждый раз, когда вы вызываете Session.Abandon (), так как это будет основной хит производительности.

Тем не менее, каждое приложение имеет «нормальное» использование памяти, то есть стабильное использование памяти (опять же, при условии, что у вас нет утечек), и этот показатель различен для каждого приложения. 400 МБ может быть много или ничего, в зависимости от того, что делает ваше приложение. У меня есть приложения, которые занимают около 400 МБ, а другие около 1,5 ГБ, и это нормально, пока использование памяти где-то стабилизируется. Если вы видите неограниченное использование памяти, то, скорее всего, где-то в вашем приложении есть утечка.

Хранение больших объемов данных в сеансе in-proc также может быстро увеличить использование памяти. Вместо этого используйте файл или базу данных для хранения этих данных.

...