Les Qt Quick Controls 1 ont laissé leur place à la version 2 dès Qt 5.7. L’un des objectifs était justement d’améliorer la performance grandement, au détriment de la fonctionnalité dans les premières itérations (un écart qui se résorbe petit à petit). Pour l’utilisateur, la différence principale est que le style ne s’adapte pas à celui de la plateforme (avec bientôt des facilités pour définir son propre style) ; côté code, les Qt Quick Controls 2 utilisent du C++ aussi souvent que possible. Effectivement, les gains sont énormes : pour un ProgressBar, on peut ainsi afficher, sur le même matériel, presque sept fois plus d’images par seconde ! En moyenne, la performance a été améliorée d’un facteur six, pour un portage très rapide (l’API entre les deux versions n’a pas beaucoup évolué).
Qt 5.9 apporte aussi un cache des shaders, qui a un certain impact, y compris sur les applications Qt Quick qui en utilisent, jusqu’à un facteur sept après un premier démarrage.
Côté JavaScript, le moteur V4 a continué ses améliorations. Elles sont particulièrement visibles sur les plateformes ARM 64 bits (des temps d’exécution divisés par quatre), mais toutes en profitent (avec des améliorations de l’ordre de seize pour cent en ARM 32 bits). La raison principale est que Qt 5.9 gère complètement les plateformes ARM 64 bits, avec un moteur d’exécution bien mieux adapté.
De manière générale, entre Qt 5.6 et 5.9, outre ces améliorations spécifiques, la performance devrait être largement améliorée pour toutes les applications, avec une simple recompilation. Certaines pourraient profiter, globalement, d’améliorations de l’ordre de cent trente pour cent. En adaptant le code (c’est-à-dire en tirant parti des Qt Quick Controls 2), les gains pourraient être nettement plus importants.
Source et images : Performance Improvements with Qt 5.9 LTS.