Creating Performant Qt Quick Apps
summary
A QML demo creates 3,600 rectangles and takes four minutes to start, uses ~200 MB and ~12,000 signal‑slot connections; profiling with the QML profiler, callgrind, massif and powertop shows nested Repeaters and abundant property bindings as the causes. Replacing nested Repeaters with index math, inlining convenience properties into JavaScript, assigning the model in Component.onCompleted, and disabling tiny animations reduces memory to ~20 MB, doubles animation frame rate and yields a 250× speedup, with shutdown becoming effectively instant.
AI-written summary · about
chapters (16)
- 0:00Introduction to Qt Quick performance
- 1:55Analyzing a slow QML example
- 7:20Profiling tools overview
- 10:09Using callgrind for deep profiling
- 15:30Memory profiling with Massif
- 17:40Platform-specific performance factors
- 20:12Understanding property bindings
- 26:51Optimizing nested repeaters
- 33:40Reducing property overhead
- 38:13Results of performance fixes
- 41:04General QML performance tips
- 45:27Power consumption issues
- 48:37Diagnosing battery drain
- 54:59Common performance myths
- 57:06JavaScript vs QML performance
- 58:35Q&A session
related talks
01h 00mHow to optimise Qt Quick 2 applications for maximum performance
28mUsing Qt Quick with low end devices (eg i.MX6)
01h 10mPerformance: Do Graphics the Right Way
52mAccelerating Qt WebKit Applications
51mUsing the Qt Quick Scene Graph API
22mOptimizing Qt Application
01h 00mMeasuring Qt Performance
54mCustomizing Qt to create first class graphical experiences on highly customized hardware
