Profile QML code
With the QML Profiler integrated in Qt Creator, you can find causes for typical performance problems in Qt Quick applications, such as slowness and unresponsive, stuttering user interfaces. You can open profiling data in Qt Extension for VS Code and view it as a flame graph.
Collect profiling data in Qt Creator
Use Qt Creator to profile the application and save QML trace files in the .qzt or .qdt format in the project directory.
For more information, see Qt Creator: Profile QML applications.
View profiling data
To view profiling data in VS Code, open a .qzt or .qdt file in the Explorer.
A flame graph shows a concise statistical overview of QML and JavaScript execution and the total impact of the various QML and JavaScript events. However, it does not show the time spans when no QML or JavaScript is running at all, so you cannot use it to analyze per frame execution times.
Generally, events in the flame graph indicate how long QML or JavaScript execution took. Move the mouse over them to see details. For most events, they include location in source code, duration and some relevant parts of the source code itself.
Select an event to move the cursor in the code editor to the part of the code the event is associated with.
View total time
In Total time, the horizontal bars show the amount of time all invocations of a certain function took together, relative to the total runtime of all JavaScript and QML events. The nesting shows which functions were called by which other ones.

View total memory allocation
To view the total amount of memory allocated by the functions, select Memory.
View memory allocation by function
To view the number of memory allocations performed by the functions, select Allocations.
Zoom the data
To zoom to fit, select
(Zoom to fit) or double-click an event.
To zoom out to the parent event, select
(Zoom out to parent).
To zoom out to the full view, select
(Zoom out to full view).
Filter events
To filter events:
- Select
(Show/hide filter dialog). - Select event categories in the list to show and hide events.
Select Select all to show all events and Clear to hide all events.
Events
The following table describes the events.
| Event | Description |
|---|---|
| JavaScript | Displays the time spent executing the actual JavaScript behind bindings and signal handlers. Lists all the JavaScript functions you may be using to evaluate bindings or handle signals. |
| Compiling | Displays the time spent compiling the QML files. |
| Creating | Displays the time spent creating the elements in the scene. The creation of elements takes place in two stages. The first stage is for the creation of the data structures, including child elements. The second stage represents the completion callbacks. Not all elements trigger completion callbacks, though. The stages are shown as separate events in the timeline. |
| Binding | Displays the time when a binding is evaluated and the length of time the evaluation takes. |
| Signal handling | Displays the time when a signal is handled and the length of time the handling takes. |
Open as JSONC
Select {} (Open flame graph as a JSONC document) to open profiling data in JSONC format.
Open in text editor
Select
(Open in text editor) to open .qtd files in XML format.
Set project source and build folders
To open QML source files when selecting events:
- Select
(Open configuration settings) to open the Configuration view.
- Select
(Browse for a directory), and then select source and build folders. - Select
(Add workspace folders) to add the currently open workspace folder. - Select Save.
To remove the folders from Configuration, select
(Clear all entries).
See also Qt Creator: Profiling QML applications.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.