Améliorations de l'utilisation de mémoire et du processeur dans Qt 3D
L'architecture du moteur optimisée pour répondre aux besoins de Qt 3D Studio

Le , par dourouc05, Responsable Qt & Livres
La performance et la stabilité de Qt 3D ne cessent de s’améliorer, grâce au travail acharné de moult contributeurs. Sa performance est principalement due à son architecture très flexible, qui sépare la partie visible (le rendu) des calculs (les aspects, responsables de la gestion des entrées et des animations, notamment). Ces aspects fonctionnent en parallèle, sur d’autres fils d’exécution, afin d’exploiter au mieux les processeurs multicœurs modernes ; ils nécessitent également une certaine duplication des données, pour éviter les synchronisations inutiles. De plus, les aspects de Qt 3D exécutent leurs travaux en définissant un certain nombre de tâches et leurs dépendances, afin d’avoir une granularité maximale dans l’ordonnancement des tâches. Pour le moment, Qt 3D est beaucoup retravaillé, au vu des plans futurs pour Qt 3D Studio.

L’utilisation de processeur de Qt 3D a énormément diminué depuis sa première version, en Qt 5.6, jusqu'à la prochaine à venir, Qt 5.11. Ces améliorations sont dues à bon nombre de facteurs : des améliorations du solveur de dépendances entre tâches (qui s’exécute plus rapidement et donne de meilleures solutions), de QThreadPool (une classe de Qt Core utilisée pour gérer une série de fils d’exécution, mais en quantité moindre que requise pour Qt 3D), des caches de certaines tâches très gourmandes en CPU (comme QMaterialParameterGathererJob, dont le code était entièrement réexécuté à chaque image).



Avec le même genre de travail, la consommation de mémoire a franchement diminué, surtout dans les applications les plus simples. Par exemple, la démo avec une bille qui tourne consomme quarante-cinq mégaoctets en moins (nonante-deux avec Qt 5.6.3, quarante-sept avec Qt 5.9.4). Une application plus complexe, du style de celles réalisées avec Qt 3D Studio, passe de deux cent vingt à cent trente-cinq (infographie).





Sources et images : CPU usage improvements in Qt 3D, Memory usage improvements in Qt3D.


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de kmedghaith kmedghaith - Membre averti https://www.developpez.com
le 19/02/2018 à 12:50
Merci pour cet article.
A mon avis, et pour avoir bien joué avec Qt3D, s'il y a quelque chose à améliorer en urgence c'est bien la documentation.
Elle n'est certainement pas au niveau du reste de la librairie : incomplète, obscure et examples pas à jour voire buggués.

MG
Avatar de olivierBrest olivierBrest - Nouveau membre du Club https://www.developpez.com
le 19/02/2018 à 15:38
C'est un peu comme la documentation QML, ça part dans tous les sens et c'est beaucoup moins clair qu'avec les QWidgets (je parle de la documentation). Il n'y a pas eu, à mon sens, de travail en amont pour donner des indications clairs aux programmeurs.

 
Responsable bénévole de la rubrique Qt : Thibaut Cuvelier -