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 :

Qt Tulip vs STL


Sujet :

Qt

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut Qt Tulip vs STL
    Quelqu'un aurait-il fait des benchmarks pour tester les containers de Qt avec la STL ? ce serait interessant de savoir pour choisir ou du moins aider ...

    merci

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Linux Mag avait fait un test, la STL état plus rapide.

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    Citation Envoyé par Miles
    Linux Mag avait fait un test, la STL état plus rapide.
    plus rapide de combien ?
    c'etait significatif comme difference ?

  4. #4
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Je ne me souviens plus du tout, ça date d'il y a 2 ans environ.

  5. #5
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    Quel rapport avec Tulip ?

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    Faut-il utiliser les containers de Qt ?
    Quels sont vraiment les avantages en pratique ?

  7. #7
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Pas de copie, surtout.

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    Citation Envoyé par Miles
    Pas de copie, surtout.
    on m'a tellement dit sur ce forum que le cow etait une mauvaise chose que maintenant je me mefie

    ... donc tout le monde est d'accord pour n'utiliser que les containers de Qt ?

  9. #9
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par epsilon68
    on m'a tellement dit sur ce forum que le cow etait une mauvaise chose que maintenant je me mefie

    ... donc tout le monde est d'accord pour n'utiliser que les containers de Qt ?
    Pas de copie pour Qt, en général pour les autres conteneurs, il y a copie lorsqu'il y a copie d'un conteneur.

  10. #10
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    Tu les utilises tout le temps maintenant ?
    tu les previlégies a la STL ?

  11. #11
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Jamais, je ne fais presque plus que du Python ou du C++ presque pur.

  12. #12
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    y a-t-il un gros avantage a se separer de Qt ?

  13. #13
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    À supposer que je vienne à utiliser QT, je me vois mal privilégier leur conteneurs.
    Tout dépendra du sous-système considéré.
    - Coeurs (métier) des systèmes -> SL.
    - IHM -> QT.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  14. #14
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Ils ont fait leurs propres conteneurs pour les plateformes qui n'ont pas de STL. Si on ne vise pas ce genre de plateforme, ça ne sert pas à gardn chose de les utiliser, à mon avis.

  15. #15
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par Luc Hermitte
    À supposer que je vienne à utiliser QT, je me vois mal privilégier leur conteneurs.
    Tout dépendra du sous-système considéré.
    - Coeurs (métier) des systèmes -> SL.
    - IHM -> QT.
    Pas mieux.

    La regle generale, c'est de ne pas introduire des dependances sur ce qui n'en a pas reellement besoin. En particulieur le coeur ne doit pas dependre de l'UI.

    Si les conteneurs de la SL ne conviennent pas -- en general en ce qui concerne les perfs, si on n'atteinds pas le niveau de perf cible etabli avant de faire des mesures -- les remplacer par des conteneurs ayant la meme interface mais plus adapte (exemple, avoir un vector optimise pour le cas ou il n'y a qu'un element dedans).
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  16. #16
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet
    Pas mieux.
    La regle generale, c'est de ne pas introduire des dependances sur ce qui n'en a pas reellement besoin. En particulieur le coeur ne doit pas dependre de l'UI.
    Si les conteneurs de la SL ne conviennent pas -- en general en ce qui concerne les perfs, si on n'atteinds pas le niveau de perf cible etabli avant de faire des mesures -- les remplacer par des conteneurs ayant la meme interface mais plus adapte (exemple, avoir un vector optimise pour le cas ou il n'y a qu'un element dedans).
    Je suis principalement d'accord mais je dois dire que leur doc est particulierement bonne et que je ne connais pas chaque compilo comment ils ont implementé la STL alors je m'étais dis que Qt nous protegeait de cela justement.
    Je sais que KDE n'utilise que les conteneurs Qt, ils ont vraiment eu trop de problemes avec la STL et passé trop de temps a patcher leur code.
    Je dois dire que j'avais eu aussi pas mal de surprise avec VC6 mais bon maintenant je pense que c'est réglé mais ... ?

  17. #17
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par epsilon68
    Je sais que KDE n'utilise que les conteneurs Qt,
    Le projet KDE a par essence une dependance forte sur QT et une influence forte sur QT. Ses choix sont peu pertinents pour ceux qui n'ont pas la meme dependance et ni la meme influence.

    Nous utilisons pour le moment QT pour l'interface graphique. Pourtant dans le code que j'ai ecrit rien ne depend directement de QT. Il faut dire que nous utilisions Motif precedemment. Et rien dans le code hors GUI ne dependait de Motif. Resultat la transition a ete relativement douce.

    D'un point de vue gestion de projet, introduire des dependances est a des desavantages, car ca gene l'evolution, ca gene la recuperation dans d'autres contextes. Maintenant, introduire des dependances peut avoir des avantages... il faut simplement les mettre en balance avec la probabilite qu'elles introduiront des couts dans le futur et l'ampleur de ces couts.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  18. #18
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet
    D'un point de vue gestion de projet, introduire des dependances est a des desavantages, car ca gene l'evolution, ca gene la recuperation dans d'autres contextes. Maintenant, introduire des dependances peut avoir des avantages... il faut simplement les mettre en balance avec la probabilite qu'elles introduiront des couts dans le futur et l'ampleur de ces couts.
    je suis de ton avis mais Qt permet aussi de coder plus vite. C'est une question dure a repondre, je suis tout le temps assez balancé. Aussi on peut se poser la meme question avec Boost ...

  19. #19
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    en fait je crois que je ne considere pas Qt comme un GUI framework, mais plutot comme un framework entier avec une grosse partie UI.

    Je pense que je vais utiliser boost et Qt core dans mon code metier
    et Qt dans le code UI.

    Ce que j'ai lu sur la STL a travers les compilateurs et les plateformes me disent de me mefier de la STL, mais bon a la fin si j'utilise ceux de Qt, j'utiliserais de toute facon les algo de la STL. L'avantage de Qt c'est sa doc ... incroyablement bien faite. Mes plateformes sont Windows / Mac / linux alors je ne pense pas rencontrer de plateforme particuliere.... alors je vais quand meme essayer d'utiliser la STL autant que possible.

    autre question: comment vous faites pour retourner une collection ?

    par exemple:
    vector<string> tokenize( const string &s, char sep )

    a l'utilisation:
    vector<string> tokens = tokenize(string("bla;la;li;lere"), ';')
    c'est minimum 2 copies je pense (votre confirmation?)

    alors preferez-vous de la passer en parametre ?
    void tokenize( vector<string> &tokens, const string &s, char sep )
    la je pense c'est optimal mais c'est moins jolie et moins pratique je trouve.

    Comment vous faites ?
    Les collections de Qt sont-elles plus efficaces dans ce cas ? (en minimisant les copies avec le COW)

  20. #20
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    vector<string> tokens = tokenize(string("bla;la;li;lere"), ';')
    c'est minimum 2 copies je pense (votre confirmation?)
    Plus optimisé mais pas forcément plus joli à écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    vector<string> tokens;
    tokenize(string("bla;la;li;lere"), ';').swap(tokens);
    alors preferez-vous de la passer en parametre ?
    void tokenize( vector<string> &tokens, const string &s, char sep )
    a je pense c'est optimal mais c'est moins jolie et moins pratique je trouve
    Complétement. Perso je ne trouve pas ça moins joli ou moins pratique.

Discussions similaires

  1. problème de références _ptr dans une map STL
    Par Mr_Tyu dans le forum CORBA
    Réponses: 1
    Dernier message: 10/08/2004, 10h39
  2. STL::vector crash a l"execution
    Par sebA dans le forum MFC
    Réponses: 2
    Dernier message: 16/06/2004, 16h36
  3. Probleme de Compilation de la STL
    Par stoluup dans le forum MFC
    Réponses: 3
    Dernier message: 05/05/2004, 17h25
  4. STL : std::set problème avec insert ...
    Par Big K. dans le forum MFC
    Réponses: 13
    Dernier message: 08/11/2003, 01h02
  5. [Kylix] [BCB] pb avec la STL
    Par pykoon dans le forum EDI
    Réponses: 1
    Dernier message: 29/12/2002, 12h56

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