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

SL & STL C++ Discussion :

Performances STL ?


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de tintin72
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 663
    Par défaut Performances STL ?
    Bonjour,

    J'aimerais savoir qu'elle est la différence au niveau rapidité entre une liste chainée classique et le vector de la STL.

    Merci

  2. #2
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Salut !

    Le vector n'est pas une liste chaîné...
    Les vector sont des abstractions des tableaux... pour les listes chaînées, il y a list

    Par contre pour ce qui est des performances, je pense logiquement que liste sera plus performant, du fait que ça a été développé pour faire partie de la librairie standard de C++, de nombreuses optimisation ont du être faite
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    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 : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Effectivement, les list de la STL ont été écrites, profilées, ... pour avoir une performance en général optimal. En revanche, il est des cas où écrire une liste soi-même permet d'optimiser des cas particuliers. Mais cela ne doit se faire qu'après vérification que le goulot d'étranglement est la liste à l'aide d'un profiler.

  4. #4
    Membre éclairé Avatar de tintin72
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    663
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 663
    Par défaut
    Merci pour vos réponses
    Je débute totalement dans l'utilisation de la STL ce qui explique certaines confusions de ma part (list et vector).
    En fait je suis confronté au pb ultra classique en c++ cad réallouer de la mémoire pour un tableau.
    Dans la FAQ ils disent qu'il vaut mieux utiliser les vectors de la STL plutot que de le faire à la main parce que c'est assez fastueux (c'est vrai ).
    Par contre il ne disent pas quelle solution est la plus rapide, d'où ma question.

  5. #5
    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 : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    La question de la rapidité ne se posera que lors de l'optimisation des performances. Pour l'instant, le plus rapide est d'utiliser la STL, non pas forcément en terme de conco CPU, mais en terme de conso temps de programmation.

  6. #6
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Dans une première phase de codage, le seul critère de performance à prendre en compte à mon avis est celui de la complexité algorithmique. Si on sait que l'on va sans cesse insérer des éléments au beau milieu de notre collection, utiliser un std::vector ne sera jamais bon, une std::list sera toujours plus appropriée.
    Si l'on sait que l'on va passer son temps à accèder dans le désordre à des éléments, c'est le contraire.

    Loulou a écrit un doc sur le choix du bon conteneur (http://c.developpez.com/faq/cpp/?pag...hoix_conteneur)


    Ce qu'il ne faut surtout pas faire, c'est des micro-optimisations qui prennent du temps, rendent le code illisible, et souvent ne serviront à rien, tant qu'on ne part pas d'un projet fonctionnant et avec l'aide d'un profiler.

    Pour ce qui est du choix STL/autre classe, la STL reprend les cas les plus courants (exception des hashtables, ça devrait être réparé dans une prochaine version), et en général, elle convient assez bien. Il existe des cas où l'on a des informations supplémentaires qui nous permettent d'aller plus loin, mais c'est assez rare.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

Discussions similaires

  1. Réponses: 24
    Dernier message: 25/03/2010, 08h58
  2. STL : informations de performances
    Par Rupella dans le forum SL & STL
    Réponses: 5
    Dernier message: 20/11/2007, 19h20
  3. Performance structure STL
    Par SteelBox dans le forum SL & STL
    Réponses: 9
    Dernier message: 21/11/2004, 11h43
  4. [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