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

C++ Discussion :

Perte de performance si déclarations dans une boucle


Sujet :

C++

  1. #1
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 73
    Points : 68
    Points
    68
    Par défaut Perte de performance si déclarations dans une boucle
    Bonjour à tous, je me pose une question (assez peu importante, mais je suis curieux :p) : quelles sont les différences, au niveau performances, entre les deux codes suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    double a;
    double b;
     
    for (int i = 0 ; i < 1000 ; ++i)
    {
        a = i;
        b = i;
        // traitement
    }
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    for (int i = 0 ; i < 1000 ; ++i)
    {
        double a = i;
        double b = i;
        //traitement
    }
    Aura-t-on reservation/libération de mémoire à chaque pas dans la boucle (et donc une perte de temps), ou est-ce que le compilateur est capable d'optimiser ça ?

  2. #2
    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 : 40
    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
    A priori au niveau allocation ça ne fera aucune différence, puisque les variables locales sont juste mises sur la pile, où qu'elles soient déclarées. Et comme il s'agit d'un type primitif il n'y aura aucune construction / destruction.

  3. #3
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 73
    Points : 68
    Points
    68
    Par défaut
    OK, merci beaucoup !

  4. #4
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Points : 661
    Points
    661
    Par défaut
    Citation Envoyé par Laurent Gomila
    A priori au niveau allocation ça ne fera aucune différence, puisque les variables locales sont juste mises sur la pile, où qu'elles soient déclarées. Et comme il s'agit d'un type primitif il n'y aura aucune construction / destruction.
    au lieu des "double" si je declarerais un iterateur ( qui appareamment n'a pas de constructeur), ta reponse serais la meme ?

    merci d'avance

  5. #5
    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 : 40
    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
    au lieu des "double" si je declarerais un iterateur ( qui appareamment n'a pas de constructeur), ta reponse serais la meme ?
    ("déclarais", pas "déclarerais")
    Là ça dépend. Normalement il y a construction et destruction de l'objet à chaque itération. Mais si le constructeur et le destructeur sont triviaux, j'imagine que le compilo peut inliner et optimiser, et au final donner le même résultat qu'avec un type primitif.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Performance Update PHP dans une boucle
    Par tutomania dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 03/07/2014, 15h03
  2. [MySQL] Perte d'encodage UTF-8 dans une boucle (php-mysql)
    Par renaudjean dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 22/09/2011, 16h07
  3. Utilisartion d'une arraylist dans une boucle, question de performance
    Par Djobird dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 20/07/2007, 17h28
  4. Réponses: 2
    Dernier message: 28/08/2006, 13h16
  5. [Performance] LEFT JOIN vs SELECT dans une boucle (PHP)
    Par frochard dans le forum Requêtes
    Réponses: 4
    Dernier message: 28/10/2005, 17h45

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