Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
5.12.3
-
None
Description
- QML requires a full JS engine and garbage collector.
- For many user interfaces this is overkill. A simpler language would be enough.
- JavaScript is not well suited for very low-end devices.
- The GC leads to some unpredictable performance characteristics.
- QML needs a separate object model built on top of the Qt Object model
- This leads to duplicated data structures.
- A large number of dynamic memory allocations is required to build the object model.
- Building the object model is a large initialization overhead at runtime.
- Binding propagation is immediate, not synced with the scene graph (or other "drivers").
- A Binding is evaluated whenever one of its dependencies changes. This is often unnecessary as multiple dependencies change in a row and the previous results are immediately discarded. For example a property "area: width * height" would be evaluated twice if you update first width and then height, as is commonly done on initialization.
- Weak typing leads to the need for runtime resolution of dependencies.
- Generated code has to be generic.
Attachments
Issue Links
- resulted in
-
QTBUG-73675 Streamline QML for better toolability and performance
- Open