IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Qt 5.12 améliore fortement la performance de Qt Quick
Avec un effort apporté aux fichiers précompilés et au moteur JavaScript

Le , par dourouc05

69PARTAGES

10  0 
Qt 5.12 n’est pas encore sorti, mais les détails sont finalisés depuis un certain temps, comme la priorité sur la performance de l’environnement Qt Quick : le moteur QML et l’interpréteur JavaScript. Qt 5.9 (la précédente version LTS) avait déjà apporté pas mal de choses à ce niveau, le travail a continué depuis lors, notamment au niveau de la consommation de mémoire.

Pour cela, les développeurs d’applications peuvent changer beaucoup de choses (avec Qt Lite pour enlever les fonctionnalités inutiles ou une gestion plus fine des ressources), mais pas le fonctionnement interne du moteur. C’est pour cela qu’une des plus grandes améliorations de performance de Qt 5.12 concerne les structures de données utilisées pour le code QML/JS compilé à l’avance (en même temps que le code C++). En effet, dans ce cas, le moteur QML n’exécute pas le code et ne peut pas, par exemple, déterminer les types de toutes les variables. Le moteur QML doit alors terminer certains traitements lors du chargement de ces fichiers, des traitements qui ont été retravaillés : désormais, les fichiers de cache contiennent aussi le tableau des chaînes de caractères (qui ne doit plus être recréé au chargement) ; les autres structures de données ont été repensées pour prendre moins de place (tant sur disque qu’en mémoire). L’effet est assez direct en comparaison avec Qt 5.6 et Qt 5.9 (sauf par rapport au Qt Quick Compiler).


Le moteur JavaScript a été aussi complètement repensé avec une toute nouvelle architecture (arrivée avec Qt 5.11). Le compilateur travaille désormais sans arbre syntaxique (AST) et génère directement du code binaire depuis le fichier JavaScript, un code binaire indépendant de la plateforme. Celui-ci peut être interprété directement ou après quelques optimisations assez simples… ou bien optimisé lors d’une étape de compilation juste à temps (JIT). Même sans ce JIT, le nouveau moteur est beaucoup plus rapide à l’exécution que précédemment, malgré la quantité de fonctionnalités de JavaScript implémentées en plus (ECMAScript 7 au lieu de 5.1).


Source : Qt Quick Performance Improvements with Qt 5.12 LTS.

Une erreur dans cette actualité ? Signalez-nous-la !