In this article we can explore how to prevent memory leaks when writing SharePoint scripts.
Memory LeakWhen writing PowerShell scripts, there are immense chances to form memory leaks if the script-writer did not free the objects correctly. When dealing with SPFarm, SPSiteAdministration SPSite and SPWeb objects with huge internal data, the problem can become more vulnerable when crunching system resources.PreventionsWe can prevent memory leaks quickly using the following Cmdlets:
Start- SPAssignment & Stop-SPAssignmentStart-SPAssignment will start collecting memory objects. Later we can invoke the Stop-SPAssignment to release the memory.
Explanation
In the preceding code, we are first declaring the variable $c pointing to collect the assignment objects. In the next line Get-SPWeb will create a web object in $w and simultaneously it is added to the assignment collection. The Stop-SPAssignment will release all the memory-objects within $c.Here additional coding is required to add the web objects to the assignment collection. In production scenarios a pre-existing PowerShell script must be modified and that will require much effort.Using –Global SwitchWe can do memory leak prevention quickly using the –Global switch. An example is given below:
Pro WPF: Windows Presentation Foundation in .NET 3.0