Command-Line Profiling of Services
This section describes the procedures and options for collecting performance data for Windows services by using Visual Studio Profiling Tools from the command line.
Enhanced security features in Windows 8 and Windows Server 2012 required significant changes in the way the Visual Studio profiler collects data on these platforms. Windows Store apps also require new collection techniques. See Profiling Windows 8 and Windows Server 2012 applications.
Collect application statistics: Use the sampling method to collect performance statistics. Sampling data is useful for analyzing CPU utilization issues and for understanding the general performance characteristics of an application.
Collect detailed timing data: Use the instrumentation method to collect detailed timing information. Instrumentation data is useful for analyzing IO issues and for fine-grained analysis of application scenarios.
Collect .NET memory data: Use sampling or instrumentation to collect .NET memory allocation data that shows you the size and number of allocated objects. You can also collect object lifetime data that shows you the size and number of objects that are reclaimed in each garbage collection generation.
Collect concurrency data: Use the concurrency method to collect resource contention data and thread activity data that shows you CPU utilization, thread contention, thread migration, synchronization delays, areas of overlapped IO, and other system events.
Add tier interaction data: You can add performance data about synchronous ADO.NET calls that the service made to a Microsoft SQL Server database.
Profile stand-alone (client) applications
Profile ASP.NET applications