Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-76013

QML is slow and consumes too much memory




      • 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.


        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.



              qt.team.quick.subscriptions Qt Quick and Widgets Team
              ulherman Ulf Hermann
              0 Vote for this issue
              9 Start watching this issue



                Gerrit Reviews

                  There are no open Gerrit changes