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

QML is slow and consumes too much memory

    XMLWordPrintable

Details

    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

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

          Activity

            People

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

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes