qt-qml-profiler

Profiles 2D QML applications with qmlprofiler and analyzes trace hotspots against source code.

1|Updated Jul 12, 2026
One-click install
npx skills add https://github.com/TypeThe0ry/Multi-Detect --skill qt-qml-profiler-typethe0ry
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: qt-qml-profiler
Source: https://github.com/TypeThe0ry/Multi-Detect/tree/main/ground-control/MultiDetectGCS/tools/skills/qt-qml-profiler
Command: npx skills add https://github.com/TypeThe0ry/Multi-Detect --skill qt-qml-profiler-typethe0ry

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Diagnosing why a QML / Qt Quick UI feels laggy, drops frames, or stutters is hard without tooling: this Skill runs qmlprofiler end-to-end, parses the resulting .qtd trace, and maps the top hotspots back to your project source with concrete fixes. ## Core Features & Use Cases - End-to-end profiling workflow: Locates the Qt toolchain, builds with -DQT_QML_DEBUG, runs qmlprofiler with selectable profiles (full, rendering, logic, memory), and falls back to a manual command when the session cannot execute binaries. - Trace parsing and summaries: A bundled Python parser emits JSON covering event-type totals, animation frame-time percentiles (p50/p95/p99), memory allocation by QV4 category, and pixmap cache usage. - Hotspot analysis and reporting: Maps the top 30 hotspots to local QML files, analyzes the top 5 against an anti-pattern catalogue (Binding, Javascript, HandlingSignal, Creating, Compiling, SceneGraph/Painting, Memory/Pixmap), and writes a timestamped standalone Markdown report. - Use Case: A developer notices their Qt Quick app stutters during scrolling; they invoke the Skill, exercise the app, and receive a report showing a Binding hotspot in a delegate with a suggested fix. ## Quick Start Ask your assistant to profile your QML application by passing the executable (for example, profile my app with the qt-qml-profiler using -- build/myapp) or supply an existing .qtd trace file for analysis only.

Frequently Asked Questions about qt-qml-profiler

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I profile a QML application with qmlprofiler?▼

Build the project with -DQT_QML_DEBUG via CMAKE_CXX_FLAGS, then run qmlprofiler with -o to write a .qtd trace while exercising the app. The trace is saved when the application exits, and the Skill parses it into a JSON hotspot summary.

How to find performance hotspots in Qt Quick QML code?▼

Parse the qmlprofiler trace to aggregate range events by file, line, and type, then map the top hotspots to local QML sources. Each hotspot is analyzed against an anti-pattern catalogue covering Binding, Javascript, HandlingSignal, Creating, Compiling, and Painting.

Does qmlprofiler support Qt Quick 3D profiling?▼

This Skill does not support Qt Quick 3D; Quick3D events are dropped from the trace and not summarized. For 3D bottlenecks, use Qt Creator's profiler UI or a dedicated 3D profiler instead.

Can I analyze an existing .qtd trace without rebuilding?▼

Yes, passing a path ending in .qtd skips the build and run steps entirely and goes straight to parsing and analysis. The parser emits the same JSON summary of hotspots, frame times, memory, and pixmap cache.

Why is my qmlprofiler trace empty or missing events?▼

An empty or tiny trace usually means the binary was built without -DQT_QML_DEBUG, the app crashed at startup, or it closed before frames rendered. Rebuild with the debug define and rerun, letting the app exit cleanly.

What platforms and tools are required for QML profiling?▼

You need a Qt 6 installation containing bin/qmlprofiler, CMake with a C++ toolchain for the debug build, and Python 3 for the parser. The Skill resolves Qt paths on Linux, macOS, and Windows from environment variables, PATH, or common install locations.