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 !

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

97PARTAGES

9  0 
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.

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

Avatar de kmedghaith
Membre confirmé 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
0  0 
Avatar de 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.
0  0