Profiling SharePoint
Published 14 December 2012
In IIS 5, your web application will always run under the ASPNET account. Make sure that the ASPNET account has permission to read from %ProgramFiles%\Red Gate\ANTS Memory Profiler 8\RedGate.Memory.Core.dll
If you have problems profiling SharePoint, see Troubleshooting SharePoint profiling.
ANTS Memory Profiler can profile managed code that runs on a Microsoft SharePoint 2007 or 2010 server.
To profile applications running on SharePoint:
- Start ANTS Memory Profiler and click
- From the list of application types, select IIS - SharePoint.
- Click to load a list of SharePoint sites that are currently running, and select the site that you want to profile.
The list normally takes at least a minute to load, and can take longer. - If you want to choose a port to profile on, or change the user account your application will run under, click Show server options:
- If your application doesn't bind to a specific port, select Unused port and enter an unused port.
- If your application must use the port it currently runs on, select Original port (IIS will restart).
- By default, ANTS Memory Profiler profiles your web application as the Windows Local System user. If the Windows Local System user doesn't have the permissions to use your SharePoint site collection, select Manually specify ASP account details and enter an account with the required permissions.
This account must also have administrator privileges on the computer ANTS Memory Profiler is running on.
- If you want to record extra performance counters, click Edit counters and select the counters you want.
Move your mouse pointer over a performance counter to read more about it.
For more information about performance counters, see Setting up performance counters. - Under Additional profiler options:
- Select Profile child processes to include any processes created by your application in profiling.
If your application has lots of child processes, this option will slow down your application. - Select Track disposal of IDisposable objects to keep track of when IDisposable objects in your application are disposed.
This option will slow down your application slightly. Select Profile unmanaged memory allocations if your application access unmanaged memory through P/Invoke or COM+, and you want to profile the unmanaged memory that your application uses.
(Not available in Windows XP / Server 2003 and earlier, or when profiling .NET 1.1 applications.)This option will slow down your application by up to fifty percent, because a lot of additional information is being tracked.
- Select Make snapshots faster by leaving out object values if you've had problems with snapshots being too slow or too large.
You won't be able to see the values of individual instances, but references between objects aren't affected.
If you want to see the values of strings or the contents of arrays specifically, click Customize and deselect the relevant option.
- Select Profile child processes to include any processes created by your application in profiling.
Click
The main profiling window is displayed, and your application will launch.If IIS does not restart correctly, use IIS Manager to stop the website and restart it once you have finished profiling.On the timeline, you can see the memory being used by your program, along with any other performance counters you selected.
- When your application is in a stable state (ie is fully started up and ready for normal use), click
A memory snapshot gives you a detailed breakdown of the memory being used at that point in time, so that you can compare it with later snapshots. - When you've taken at least two snapshots, you can start to investigate your application's memory usage. See Strategies for memory profiling.
SharePoint's API is still partly unmanaged. If you have been experiencing memory problems with SharePoint, you might find these MSDN articles helpful: