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 :

Guru of the Week n° 33 : le mot clé inline [Tutoriel]


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut Guru of the Week n° 33 : le mot clé inline
    Contrairement à l'opinion populaire, le mot-clef inline n'est pas une sorte de formule magique. C'est néanmoins un outil utile quand on l'emploie comme il faut. La question est : quand doit-on l'utiliser ?

    Dans cette traduction de Guru of the Week n° 33, Herb Sutter aborde la question du mot clé inline et de l'optimisation précoce.

    Utilisez-vous inline selon ces recommandations ?
    Retrouvez la liste de tous les Guru of the Week sur la page d'index.

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Je remercie les gens pour cette traduction, cela faisait quelques temps que je cherchais une parole fiable sur l'utilisation de inline


    N'ayant (malheureusement) jamais travaillé pour l'instant sur des projets où la vitesse d'exécution était très critique, je n'ai jamais eu besoin d'utiliser inline. Quelques phrases m'ont marquées :
    évitez de mettre inline et de faire tout réglage fin tant que les profils de performances n'ont pas prouvé le besoin (Cline95 : 139-140, 348-351 ; Meyers92 : 107-110 ; Murray93 : 234-235; 242-244) ;
    corollaire : en général, évitez de mettre inline (Lakos96 : 631-632 ; Murray93 : 242-244) ;
    Et cela rejoint parfaitement une idée à laquelle j'adhère totalement et que je sors souvent aux gens que j'aide sur ce forum :
    si vous cherchez à améliorer l'efficacité, commencez toujours par vous pencher sur vos algorithmes et vos structures de données
    Cette phrase devrait être gravée en haut de l'écran de tous les développeurs

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 168
    Par défaut
    Je trouve que c'est un des mots clef les plus mystique du C++ car son fonctionnement dépend plus de l'implémentation du compilateur et de ses optimisations que de la norme.

    En tout cas merci pour cette traduction !

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    Tout comme volatile, encore plus mystique.

  5. #5
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Le mot clé en lui-même n'est pas si mytisque, il dit juste au compilateur de ne pas faire de simplification en supposant une valeur figée de la variable, car celle-ci pourrait être modifiée par autre chose que le programme.

    Ce qui est plus mystique peut-être, c'est de trouver un cas où ça arrive. Ca arrive en programmation bas niveau, quand ta variable donne accès à un registre matériel par exemple. L'exemple des memory-mapped I/O de Wikipedia anglais est intéressant : http://en.wikipedia.org/wiki/Volatil...ped_I.2FO_in_C

    Par exemple, dans un microcontroleur, tu peux accéder à une zone mémoire qui donne la valeur d'un timer, qui change "tout le temps", indépendamment du programme. Imagine dans le premier exemple du lien, que foo est la valeur de ce compteur, et que tu attendes qu'il arrive à 255. Tu serais triste d'avoir un while(1) à la place.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Effectivement le volatile au moins, on sait ce qu'il fait.
    inline, on sait ce que la théorie propose, en pratique... le compilateur décide ou non.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    Ben le comportement de volatile dépend de la plate-forme, alors...

Discussions similaires

  1. Guru of the Week n° 35 : le mot-clé typename
    Par gbdivers dans le forum C++
    Réponses: 8
    Dernier message: 12/07/2012, 17h23
  2. Guru of the Week 104
    Par gbdivers dans le forum C++
    Réponses: 15
    Dernier message: 25/04/2012, 15h27

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