Утечка памяти - утилизация SPSite и SpWeb?
Вопрос
Итак, я прочитал еще один пост здесь Утилизация SPWEB, созданную с использованием spsite.openweb ().
В настоящее время я распоряжаюсь только объектом SPSite, и, от моего понимания, который Spsite распоряжает любой открытой SPWEB также должен утилизировать. Похоже, что наилучшей практикой является избавление от каждого SPWEB. Я сделаю так.
Моя причина этого поста такова: как будет выглядеть утечка памяти? У меня есть задание на таймер, которая работает каждые 2 минуты и обрабатывает некоторые элементы списка. Опять же, я исключает только объект SPSite, а не объект SPWEB. После того, как он позволил ему работать около недели на Dev, процесс SQLServer.exe составлял около 1,7 ГБ использованной памяти. SharePoint начал ошибку из памяти. С тех пор я перезапустил SQL, и он снизился до 320 МБ памяти. Я не знаю, сколько это было до того, как установил задание на таймер, но тогда мы не получали эти ошибки.
Я вижу утечку памяти в SQLServer из -за того, что я не закрываю SpWeb? Или в процессе W3WP произойдет утечка памяти SharePoint? Любая ясность высоко ценится!
Спасибо,
Решение
Утечка памяти будет проявляться во всем, что является процессом хоста для кода, который имеет утечку. В случае с кодом SharePoint это не будет процессом SQL - скорее всего, то, что вы видите здесь, просто связано с тем, что SQL обычно потребляет как можно больше памяти (то есть все, что не вызывает/используется/используется другими процессами). Вы можете привязать его, если хотите, я иногда делаю это (например, на виртуальных машинах Dev).
Таким образом, вы можете увидеть утечку из -за кода SharePoint в:
- w3wp.exe для кода, работающего со веб -страницы
- Owstimer.exe для работы таймера
- Stsadm.exe для пользовательской команды stsadm
- Процесс для пользовательского EXE, например, в случае приложения консоли
..так далее..