Qt : l’influence du compilateur sur les performances

Observations

Voici la liste de mes principales observations, sans interprétation :

Sous Windows, en version Release, une application compilée sous MSVC en 64 bits est environ 50% plus rapide qu’une version compilée en 32 bits.

Sous Windows, en version Release, les applications compilées en 32 bits ont les mêmes performances.

La version de Qt n’a pas d’influence sur les performances.

Je n’ai pas communiqué les résultats mais sachez qu’en version Debug (sans optimisations), c’est MSVC qui est 2 fois plus lent que minGW.

Conclusions

J’ai toujours considéré que, pour se simplifier la vie, il vallait mieux utiliser le compilateur “naturel” du système ciblé (MSVC pour Windows, Clang pour macOS, GCC pour GNU/Linux). Ces résultats confirment qu’en l’absence d’un compilateur MinGW en 64 bits sous Windows il vaut mieux compiler avec MSVC. Sur les autres systèmes, la question se pose moins puisqu’il n’y a pas tellement de choix…

Lorsque je disposerai d’un compilateur GCC 64 bits avec Qt, je pourrai compléter ce comparatif, mais en attendant, l’avantage est clairement à MSVC en 64 bits sous Windows.

Code source

Vous pouvez obtenir le code source de ce programme sur github en suivant ce lien ou en clonant le dépôt :

Pour aller plus loin

A l’avenir je souhaite ajouter à cette étude un benchmarking sur les performances avec Qt Quick, avec et sans utilisation de la compilation JIT.

A suivre…

Partagez cet article !

Abonnez-vous à notre newsletter !

Si vous souhaitez être notifié lorsqu'un nouvel article est publié, abonnez-vous à notre newsletter et vous recevrez un email dès qu'un article sera publié.

Pages : 1 2 3 4

Articles similaires

Qt : comment implanter un... L’application Voici à présent le fichier main.cpp [crayon-5dab6692e2585699309848/] Après avoir déclaré une instance de QCoreApplication, nous démarrons le contrôleur et exécutons le traitement threadé. Au bout de
Qt : pourquoi et quand ut... De la bonne utilisation de la run-loop La run-loop est un thread. Ou plutôt, chaque instance de la classe QThread possède une run-loop, c’est-à-dire une boucle infinie
Adopter les flux tirés d... Nous abordons un des points essentiels de l’architecture réseau et applicative efficace et économe : les flux tirés. Partagez cet article ! Abonnez-vous à notre newsletter !
Utiliser la technique du ... Le lazy-loading, ou chargement paresseux en français, est une réponse simple à la question simple “pourquoi charger plus de données que nous ne pouvons en afficher ?”.
Apprendre à développer ... Une de mes activités est la formation professionnelle à la conception et à la programmation d’applications avec Qt. J’envisage aujourd’hui de créer un MOOC payant pour partager
Qt : Traiter une liste de... Pour qu’une interface graphique reste fluide aux yeux de l’utilisateur, le thread qui la gère ne doit jamais être interrompu plus d’une poignée de millisecondes. Or le
Qt : l’influence du... Observations Voici la liste de mes principales observations, sans interprétation : Sous Windows, en version Release, une application compilée sous MSVC en 64 bits est environ 50%
Qt : distribuer ses appli... La distribution d’une application est une étape importante de la vie d’une application, elle nécessite d’être pensée très tôt dans la conception. Cette série d’articles présente les
Livre Maîtrisez Qt 5 ... La seconde édition du livre de Tristan Israël, Maîtrisez Qt 5 – Développement d’applications professionnelles, est parue. Vous pouvez le découvrir sur le site des éditions ENI.

Laisser une réponse

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *