Hi All , Today I will talk about profiling tool Profiling helps to analyze the bottleneck of managed application like how much time taken to execute a particular method , where CLR took major time inside your code, objects lifetime history , how much memory your application consumed and other performance related issues .This is the quickest way to check health of your application. Profiling can be done in two ways 1. Sampling 2. Instrumentation Sampling monitors the entire application and maintain the counter of which method execute how many times , which method calls prior to the calling method (provide complete stack trace method call history) . Once you done with execution of application a sampling report will generates out of profiling data, this can be viewed through reporting feature integrated within IDE .This approach helps to collect the performance related issue by simulating the actual production environment .The main disadvantages is that it can only get relative performance data for the method that were sampled. It is possible that a method you wanted to sample did not get sampled and therefore, no information is available about it. The instrumentation method is more persistent than the sampling In this approach the profiler inserts enter and exit probes into specific method of your application i.e instrumentation provides the advantage of gathering exact performance data for specific portions of the application. During instrumentation, enter and exit probes are inserted into the application's functions. To perform instrument or profiling click on Tool| Performance Tools and select Performance Wizard . Profiling can be view through performance explorer . The Performance Explorer presents hierarchical structure to the user. This has two node Targets and Reports . Targets node contains one or more targets such as an .EXE, .DLL, or ASP.NET application. Reports node contains all the reports that are relevant to a particular Performance Session. Once the application finishes executing, a performance session report is automatically added to the Reports node. While you are working with sampling or instrumentation both looks like the same but the main different is sampling captures program state by sampling at specified intervals like clock cycles or page faults where as instrumentation inserts probes into your code to catch every single function call made by your program.. Instrumentation profiler provides more specific and reliable information than the sampling method, this is one of the key tool to use at critical intervals during the development process.
Cheers Anand |