Application Profiler tab

The settings in the Application Profiler tab are organized into the following four panels:

Profiling Method

Functions Instrumentation
Provides precise function runtimes, based on function entry and exit timestamps reported by the binary.
Sampling and Call Count Instrumentation
Provides runtime estimates based on statistical position sampling driven by timer interrupts.

Profiling Scope

Single Application
Allows you to profile a specific process for an extended period of time, but doesn't provide information about context switches.
System Wide
Writes profiling data in kernel events, which are logged to an output file that you can view in the System Profiler tool. When this option is enabled, the IDE initiates a kernel event trace when launching the application. The trace captures kernel activity from all processes on the target. Any kernel event trace should be limited to a few seconds because longer traces produce too much data to be useful.
This option is available only when the Profiling Method is Functions Instrumentation. When this option is enabled, you must also enable the System Profiler tool by clicking Add/Delete Tool…, checking the Kernel Logging box in the resulting dialog, then clicking OK to return to the launch configuration.

Options

These options are available only when the Profiling Method is Functions Instrumentation and the Profiling Scope is Single Application.

Data transfer method
  • Save on the target, then upload — Saves all profiling data on the target, then uploads the data file to the host when the program finishes. This setting means you can't see results as they come in, but avoids the overhead of sending data over the network while the program runs.
  • Upload while running — Sends profiling data to the host while the process runs on the target. This setting lets you see results as they come in, without waiting for the program to finish, but imposes more overhead.
Path on target for profiler trace
Sets the location of the results file on the target. You can include the ${random} string, which the IDE replaces with a random number unique to that session. You can enter an absolute path with the filename, or a relative path (in which case, the file is written to /tmp).
Remove on exit
Removes the results file from the target when the session finishes. If the IDE has written a random number for the ${random} string in the filename, the file is permanently removed.
Use pipe
Creates a pipe file on the target instead of a regular file. A pipe file stores the collected data using less memory and disk space. To use this option, ensure that the pipe utility is running on the target. For more information, see pipe in the Utilities Reference.
The IDE can create the file on the real filesystem only. It can't create it on /dev/shmem/.
Profiling Counter
Specifies which counter the instrumentation code uses to determine the current time at function entry or exit points.
  • Time: Default — Use ClockCycles() for single-core and realtime clock for multi-core (default).
  • Time: Clock Cycles — Use ClockCycles() for multi-core, which is faster and has better resolution than the realtime clock.
  • Time: Clock Monotonic — Use the realtime clock, which reports the monotonic count of elapsed time since the system booted.
  • Time: Clock Process — Use the process time clock.
  • Time: Clock Thread — Use the thread time clock.
  • Memory: Allocated Heap — Use allocated heap memory as a profiling counter (enables memory profiling).

Control

These options are available only when the Profiling Method is Functions Instrumentation, for either a single application or a system wide profiling scope.

Automatically start profiling
Specifies whether profiling starts automatically or only after you click Resume Profiling in the Profiler Sessions view. If you uncheck this box, you must define signals for starting and stopping profiling by checking the box just below. Otherwise, no profiling results are captured.
Install start/stop hooks
Enables the Resume Profiling and Pause Profiling controls in the Profiler Sessions view. If your code already uses the default signal numbers that start and stop profiling, you can specify different values.
  • Pause signal number — Specifies the signal number that pauses profiling.
  • Resume signal number — Specifies the signal number that starts or resumes profiling.