Fast C++ to QML properties
summary
QQmlPropertyMap hits a performance wall because every insert rebuilds the QMetaObject leading to an n^2 rebuild of QMetaObject and poor update throughput; tests show scenes with around 6000 properties and dozens (≈50) simultaneous changes. FastProperyMap implements a builder API, index-based inserts and name caching to avoid repeated metaobject rebuilds, yielding multi× speedups (claim: order-of-magnitude better on insert/updates, measured ~3× faster than static QQml-backed maps in parts) and a usable GitHub implementation.
AI-written summary · about
chapters (12)
- 0:00Introduction to talk
- 2:19Controlling pixels with QML
- 5:34Demo of property maps
- 7:20Static vs dynamic property maps
- 9:58Performance issues with static maps
- 13:01Understanding QMetaObject
- 16:58Fixing slow insertion in QML
- 20:36Optimizing property name checks
- 21:00Introducing QML property map
- 24:03Tricking QML into faster lookups
- 26:26Final performance results
- 27:07Q&A and conclusion
related talks
53mQt Quick Best Practices and Design Patterns
49mQt Quick Best Practices and Design Patterns
01h 22mArranging Items, QML Components and Debugging QML (part 4/4)
01h 22mQt Quick - Introduction to Qt Quick (part 1/4)
35mQML in Qt6
05mSimple Solutions for High Performance: StaticFlatMap
05mGenerating UI with C++, boost & Qt
01h 21mQt Quick - User Interaction - User Input and States (part 2/4)
