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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Gains de performances sur QCoreApplication avec Qt 5


Sujet :

Qt

  1. #1
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    août 2008
    Messages
    26 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2008
    Messages : 26 303
    Points : 187 459
    Points
    187 459
    Par défaut Gains de performances sur QCoreApplication avec Qt 5
    En ce qui concerne la robustesse et la sécurité, il vaut souvent mieux avoir plusieurs démons (services en terminologie Windows), plus ciblés, plutôt qu'une grosse application monolithique. Avec Qt 4, il était possible de choisir les modules que l'on souhaitait pour son application – ainsi, on pouvait avoir un démon sans GUI. Avec les considérations architecturales orientées plateformes embarquées et la modularisation de Qt 5, on atteint un autre niveau.

    Si on prend une simple application Qt, sans interface graphique, qui ne fait que lancer une boucle d'événements et attend trois secondes, tant pour Qt 4 que Qt 5, on a ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    int main() {
      QCoreApplication app(argc, argv);
      QTimer::singleShot(3000, &app, SLOT(quit()));
      return app.exec();
    }
    Sur une distribution Kubuntu 12.04, en 32 bits, avec Qt 4.8.1, massif (un outil disponible avec valgrind) reporte une utilisation mémoire maximale de 102 ko ; callgrind, un coût d'instructions d'approximativement 1,9 million (en ne comptant que les instructions exécutées dans main()). Avec Qt 5, le même massif sur le même système d'exploitation reporte une utilisation mémoire maximale de 4,9 ko (!), callgrind un coût de 114 000 (!). En d'autres termes, Qt 5 consomme vingt fois moins de mémoire et seize fois moins d'instructions pour instancier un objet QCoreApplication et lancer une boucle d'événements.

    Qu'est-ce qui a changé depuis Qt 4 ? Principalement, la gestion des chaînes de caractères : Qt 5 considère que toutes sont en Unicode et ne charge les codecs associés à d'autres encodages que s'ils sont réellement nécessaires (leur chargement a aussi été amélioré, mais ne rien charger est toujours mieux). De même, C++11 est utilisé par endroits, ce qui fait qu'il n'y a pas besoin d'allocation pour instancier une QString contenant une chaîne Unicode.

    Source : QCoreApplication mini benchmark.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    août 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : août 2011
    Messages : 2
    Points : 0
    Points
    0
    Par défaut
    donc KDE 5.X sera trés légère et rapide et sa grand probleme se résoudra?

  3. #3
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    août 2008
    Messages
    26 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2008
    Messages : 26 303
    Points : 187 459
    Points
    187 459
    Par défaut
    Ça ne pourra pas lui faire de tort, mais toute application trop lourde et mal écrite dès le début restera lourde et mal écrite (ce qui n'est absolument pas le cas des dernières versions de KDE, d'après mon expérience personnelle).
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  4. #4
    Membre émérite
    Avatar de Daïmanu
    Homme Profil pro
    Développeur touche à tout
    Inscrit en
    janvier 2011
    Messages
    669
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur touche à tout

    Informations forums :
    Inscription : janvier 2011
    Messages : 669
    Points : 2 268
    Points
    2 268
    Par défaut
    Et qu'en est il du temps de compilation ?
    J'imagine qu'il doit être réduit vu les changements de QString et l'utilisation de C++11
    Je fais appel aux esprits de Ritchie, Kernighan, Stroustrup et Alexandrescu
    Donnez moi la force, donnez moi le courage de coder proprement !

    « Ça marche pas » n'est PAS une réponse convenable, merci de détailler le souci en fournissant l’environnement, le code source, les commandes et les messages d'erreur.

    Ce club possède également un clavardage, on y trouve quelques perles entre deux sessions d'entraides.

  5. #5
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    décembre 2011
    Messages
    1 314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : décembre 2011
    Messages : 1 314
    Points : 3 703
    Points
    3 703
    Billets dans le blog
    12
    Par défaut
    Et qu'en est il du temps de compilation ?
    16 fois moins d'instructions... 16 fois plus rapides ?

    Est-ce que le temps de compilation est vraiment une contrainte par rapport au gain de mémoire énorme qu'apporte cette nouvelle version ? (encore faut-t-il que ces tests soient avérées dans 100% des cas).

    Même s'il a prit du retard, vive C++11
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  6. #6
    En attente de confirmation mail
    Profil pro
    Inscrit en
    décembre 2010
    Messages
    555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2010
    Messages : 555
    Points : 1 595
    Points
    1 595
    Par défaut
    Citation Envoyé par dourouc05 Voir le message
    (ce qui n'est absolument pas le cas des dernières versions de KDE, d'après mon expérience personnelle)
    C'est un excellent gestionnaire de bureau, mais les développeurs se sont bien cassés les dents lors du passage 3.5 -> 4.0.
    Je me demande comment ça se passera pour KDE 5.0

  7. #7
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    26 336
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : mai 2008
    Messages : 26 336
    Points : 212 601
    Points
    212 601
    Billets dans le blog
    94
    Par défaut
    Citation Envoyé par Squisqui Voir le message
    C'est un excellent gestionnaire de bureau, mais les développeurs se sont bien cassés les dents lors du passage 3.5 -> 4.0.
    Je me demande comment ça se passera pour KDE 5.0
    Bah, normalement, le portage devrait être simplifié. Du moins, c'est ce que l'on nous annonçait du temps des Qt Developers Days en Octobre 2011. Juste un script permettant de transformer un code Qt 4 en code Qt 5 (changement de 2 / 3 entêtes et autres babioles). Donc, à cette époque (et je ne vois pas pourquoi cela changerai) la transition semblait beaucoup moins douloureuses que du temps de Qt 3 -> Qt 4.
    En même temps, il faut dire que la transition Qt 3 -> Qt 4 avait été assez compliqué (beaucoup de changement dans l'architecture même de Qt et des classes à utiliser). Donc Nokia voulait rassurer les développeurs en disant qu'ils ne reproduiront pas cela.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  8. #8
    Membre chevronné
    Homme Profil pro
    Ingénieur en génie logiciel
    Inscrit en
    juin 2012
    Messages
    714
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur en génie logiciel
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : juin 2012
    Messages : 714
    Points : 1 972
    Points
    1 972
    Par défaut
    Citation Envoyé par bmoez.j Voir le message
    donc KDE 5.X sera trés légère et rapide et sa grand probleme se résoudra?
    En fait faut juste éviter d'utiliser kubuntu et kde tourne comme par magie beaucoup mieux.

    Citation Envoyé par Squisqui
    C'est un excellent gestionnaire de bureau, mais les développeurs se sont bien cassés les dents lors du passage 3.5 -> 4.0.
    Je me demande comment ça se passera pour KDE 5.0
    Il y a eu énormément de changement d'architecture ainsi que des concepts clés.

    Certaines distribution s'en n'ont mieux sortie que d'autre en prenant ce qui fonctionnait sous kde 4 et lorsque ça ne fonctionnait pas avec la version 4, il optait pour la version 3.x

    Suse a opté pour cette solution. Pas parfaite, mais l'utilisateur pouvait profiter de kde 4 sans tout les problèmes.....

    Ce n'est pas vraiment ce qui est à l'ordre du jours pour kde 5.

  9. #9
    Membre expérimenté
    Profil pro
    Développeur informatique
    Inscrit en
    avril 2009
    Messages
    527
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : avril 2009
    Messages : 527
    Points : 1 518
    Points
    1 518
    Par défaut
    Citation Envoyé par marc.collin Voir le message
    En fait faut juste éviter d'utiliser kubuntu et kde tourne comme par magie beaucoup mieux.
    Rhoo le troll , j'ai un kubuntu à jour qui tourne parfaitement bien chez moi.

Discussions similaires

  1. performance sur une listview avec beaucoup de lignes
    Par jerem_orga dans le forum jQuery
    Réponses: 4
    Dernier message: 01/02/2012, 10h24
  2. Réponses: 39
    Dernier message: 21/12/2011, 20h01
  3. [Qt Mobility] Qt Mobility 1.1.3, avec améliorations du binding Qt Quick et des performances sur Symbian
    Par johnlamericain dans le forum Bibliothèques
    Réponses: 4
    Dernier message: 01/03/2011, 20h37
  4. problème de performance sur requête avec Tsearch2
    Par Morpheas dans le forum PostgreSQL
    Réponses: 0
    Dernier message: 05/02/2008, 12h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo