Performance tip Use Loaders

From Qt Wiki
Revision as of 16:16, 14 January 2015 by Maintenance script (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

QML applications can start slowly if there is a lot of QML to be parsed. This can happen if the whole application is implemented in one huge QML file. Partition our application wisely into logical entities, load minimum QML at start and load more as you need it using Loaders.

  • The Loader item can be used to dynamically load and unload visual QML components defined in a QML file or items/components defined within a QML file. This dynamical behavior allows the developer to control the memory usage and startup speed of an application. More info: http://doc.qt.nokia.com/latest/qml-loader.html#details
  • Partition your application into several QML files so that each file contains a logical UI entity. This way loading and unloading are easier to control. DO NOT have one huge QML file per application.
  • Load absolutely minimum amount of QML at application start to make your application start as quickly as possible. You can connect to network and show spinner etc. after the application UI is visible.
  • If your first view is very complex and requires lots of QML to be loaded, show a splash screen to give user the feeling that something is happening
  • You should load pieces of UI only by demand e.g. when the user navigates to another view, but on the other hand it may require more time to navigate between views
  • You can use environment variable QML_IMPORT_TRACE=1 to get debug output from the import loading mechanism. This output clarifies how much QML/JavaScript code is parsed at application start. http://doc.qt.nokia.com/latest/qdeclarativedebugging.html

Categories: