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 :

Affectation d'une variable a elle même, optimisation ?


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut Affectation d'une variable a elle même, optimisation ?
    Bonjour,

    Le compilateur (en l'occurence VC6 mais la question est plus générale) est-il capable d'optimiser cette écriture en ne faisant tout simplement rien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    string str( autrestring)
     
    (...)
     
    //  optimisation ici ?? ignore la ligne ?
    str = str;
    Je n'écris pas ceci dans mon code mais j'ai une fonction template inline qui parfois renvoie le string lui même.

    Si il s'était agit d'un type primitif, peut être que l'optimisation aurait été plus évidente, mais ici un string, je doute...

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par défaut
    A part créer ta propre classe string avec un opérateur = approprié, je ne vois guère d'autre moyen d'optimiser ceci.
    Dans ton cas précis, l'opération utilisera tout le temps l'opérateur de recopie de string qui au final exécutera le même code. Si tu regardes le code asm généré par le compilateur, tu verras que les opérations basiques sur = sont toujours les mêmes.
    Ou alors, il te faut créer toi-même ton compilateur mais là, bonjour les travaux d'Hercule

  3. #3
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Par défaut
    Je me doutais un peu qu'il n'y aurai pas d'optimisation ici. Dans mon cas ce n'est pas très grave, c'est plus pour répondre à mes questions existancielles.

    Et par contre ce code pourrait être optimisé non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    int monInt( autreInt )
     
    (...)
     
    //  optimisation ici ?? ignore la ligne ?
    monInt = monInt;

  4. #4
    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 : 50
    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
    Certaines implémentations de string optimisent ce genre de choses. D'autres considèrent que le test nécessaire pour optimiser ce genre de chose est une perte de temps pour le cas classique où les chaînes sont différentes. Enfin, si l'opérateur est inliné par le compilateur, il est possible que ce dernier se rende compte qu'il n'a rien à faire, mais j'en doute.
    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.

  5. #5
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Même si string n'optimise pas ceci un optimiseur suffisamment puissant pourrait éventuellement le faire.

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/01/2012, 00h31
  2. Affectation d'une variable dans un état
    Par tamerlan dans le forum Access
    Réponses: 26
    Dernier message: 04/04/2006, 09h09
  3. [DEBOGUEUR] tracer l'affectation d'une variable
    Par mimil dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 15/03/2006, 17h08
  4. Croisement d'une table avec elle même
    Par lelapin dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/09/2005, 07h44
  5. [arborescence] jointure d'une table avec elle même ?
    Par Celelibi dans le forum Requêtes
    Réponses: 2
    Dernier message: 16/11/2004, 18h48

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