Вопрос

Итак, я прочитал еще один пост здесь Утилизация 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, например, в случае приложения консоли

..так далее..

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top