Profiling applications

How to: Profile

Use integrated profiling tools to find causes for typical performance problems in your applications, analyze CPU and memory usage, and visualize trace events.

Using profiling tools

To use a profiling tool, select it in the Analyze menu or in the pull-down menu of the Profile mode. The selected tool opens in the Profile mode. Switch between tools by selecting them in the menu on the toolbar.

Overview of the profiling tools

The following table describes the tools you can use in Qt Creator to profile your code. Profiling tools are built into Qt Creator.

ToolLanguageDescription
Chrome Trace Format VisualizerAnyExplore traces that third-party tools generate in Chrome Trace Format.
Performance AnalyzerAnyAnalyze the CPU and memory usage of an application on Linux desktop and embedded devices.
QML ProfilerQML, JavaScriptFind causes for typical performance problems in your applications, such as slowness and unresponsiveness.

Using Chrome Trace Format Visualizer

Use the Chrome Trace Format Visualizer to view Chrome trace events. This is especially useful when viewing large trace files that are difficult to visualize using the built-in trace-viewer (chrome://tracing).

Tracing information can tell you more about the data that QML Profiler collects. For example, you can check why a trivial binding evaluation is taking so long. This might be caused by C++ being executed or the disk I/O being slow.

Several tracing tools can generate information about Chrome trace events in Chrome Trace Format beyond Chrome-based tools. With the visualizer, you can navigate, zoom, and inspect events in the trace.

For more information, see:

Using Performance Analyzer

On Linux, use Performance Analyzer to analyze the CPU and memory usage of an application on Linux desktop and embedded devices.

Performance Analyzer uses the Perf tool bundled with the Linux kernel to take periodic snapshots of the call chain of an application and visualizes them in a timeline view or as a flame graph.

For more information, see:

Using QML Profiler

Use QML Profiler to inspect binding evaluations and signal handling when running QML code. This helps you identify performance bottlenecks that are difficult to spot through code inspection alone.

QML Profiler records events, such as signal handling, binding evaluations, and JavaScript execution, and visualizes them in a timeline view. This is useful for diagnosing slowness and unresponsiveness.

For more information, see:

See also How to: Profile.