For the Qt 5.9 LTS version we are using in this book, one of the most important objectives was to significantly improve the QML performance compared to the previous LTS version, that is, Qt 5.6.
This objective was met quite impressively, as in some areas the performance could be improved even up to 130%, the average over all modules being 14%. More specifically, the following improvements were implemented:
- QML application startup time: Qt 5.8 already introduced QML caching and Qt 5.9 added a possibility to pre-populate it, so that already the first start will be fast
- Qt Quick Controls 2 were fully supported as replacement for Qt Quick Controls 1: Their performance was hugely improved (by up to 140% in some cases)
- Shader cache: If your Qt application is using OpenGL shaders, the newly introduced shader cache will improve startup times
Other improvements that were introduced include: improved binary size, reduction when using Qt Lite configuration system, rewritten QML garbage collection, and improved JavaScript performance.
In the next versions, that is, Qt 5.10, Qt 5.11, and the planned Qt 5.12 LTS version, further performance improvements will be introduced, such as a completely new JavaScript and QML compiler architecture, support for compressed OpenGL textures, inclusion of the Qt Quick compiler in the open source version, improved TableView performance, and a tool for pre-generation of GPU font rendering information (distance fields).