The Application Profiler tool allows you to do the following kinds of profiling:
- Position sampling and function call counts — Any application launched through the IDE reports its execution
position at regular intervals. You can also instrument the binary to make it report every function caller, to see call counts
in the results. This latter option produces more data than sampling alone, but adds some overhead.
- Function runtime measurements for a single process — You can instrument a binary to precisely measure execution
times of individual functions in an application. This profiling method produces very accurate data, but adds significant
overhead.
- Function runtime measurements within a kernel event trace — You can perform a kernel event trace while running
applications with function instrumentation enabled. With this setup, you can see when certain functions were executed in relation to other system events.
- Postmortem profiling — For applications built with profiling but run outside of the IDE, you can view the
analysis results in the IDE; however, information about individual threads is not available.
The sections that follow explain how to perform these four kinds of profiling, and how to attach the Application Profiler tool to
a target process, to start seeing profiling results for a running application. You can run multiple profiling-enabled applications
simultaneously, because the IDE reads the profiling data from each application into its own profiling
session, as explained in "Profiler Sessions view".