The settings in the Application Profiler tab are organized into the following four panels:
- Profiling Method
- Profiling Scope
- Options
- Control
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.