CPU Profiler

CodeXL

PreviousNext
CodeXL User Guide
Help > Using CodeXL > CPU Profiler
CPU Profiler

CodeXL's CPU Profiler is used for performance analysis and tuning of applications running on CPU.

The CPU Profiler lets you identify main performance bottlenecks of the profiled application or the entire system.

Features

·         Three profile modes:

    Time-Based Profile (TBP) can identify the “hot-spots” in the profiled applications. (Hot-spots are code areas that use significantly more time compared to other areas in the code.)

    Event-Based Profile (EBP) can identify CPU and memory related performance issues in the profiled applications.

    Instruction-Based Sampling (IBS) can record and count the instructions that trigger HW events, as well as calculate various metrics, such as data cache latency.

·         Per-Process mode and System-Wide mode profiling:

    Per-process mode profiles a process and its children.

    System-wide mode profiles the entire system.

·         Attach to process for profiling.

·         User-mode profiling and Kernel-mode profiling (Windows only).

·         Native applications profiling (C, C++ and Fortran).

·         Profiling C++ inline functions.

·         CLR/.NET applications profiling (only on Windows).

·         Java applications profiling.

·         Call Stack Sampling (CSS) for all profile modes.

·         Aggregation of the collected samples at various levels: Process/Modules/Functions/Source and Disassembly.

·         HW events counter multiplexing.

·         Debugging Data Formats Supported:

    CodeXL supports symbol information for unmanaged Executables compiled by MS Visual Studio or GCC (under Linux or other Unix-like systems (like Cygwin and MinGW)). That includes the following debugging data formats: PDB, COFF, DWARF, STABS.

    For managed Executables, CodeXL supports Java and .NET applications’ debug information.

·         Time-Based Profile (TBP) and Event-Based Profile (EBP) are supported in guest OS running on VMware Workstation 11.0 or later.

·         Time-Based Profile (TBP) and Event-Based Profile (EBP) are supported on Microsoft Hyper-V.

·         Time-Based Profile (TBP) is supported on Xen Project hypervisor.

·         Time-Based Profile (TBP) is supported on Linux KVM hypervisor.

·         Controlling CPU Profiling i.e. pause and resume profiling, from target application to limit profiling scope.

·         Aggregated instruction based (IMIX) report generation from CPU Profiler CLI.

Limitations

·         CPU Profiler expects the profiled application executable binaries must not be compressed or obfuscated by any software protector tools, e.g. VMProtect.

Using the CPU Profiler

This section explains various key concepts related to CPU Profiling. It consists of the following subsections.

·         CPU Profile Key Concepts

·         CPU Profile Configurations

·         CPU Profile Session

·         CPU Profile Data Analysis

·         CPU Profile Command Line Interface

·         CPU Profile C/C++ Inline Functions

·         CPU Profile PLT Relocations

·         CPU Profile on Virtual Machine

·         CPU Profile Control APIs

·         CPU Profile IMIX report generation