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

Langage C++ Discussion :

code plus lent si linké statiquement ?


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 12
    Par défaut code plus lent si linké statiquement ?
    Bonjour,

    je suis face à un problème qui défie ma logique.

    Je compile un bout de code directement dans mon application ou je compile le même bout de code dans une librairie statique que je link statiquement à mon application.

    L'exécution du bout de code en question est environ 4 fois plus long dans le 2ème cas.
    Les options de compil sont strictement les mêmes et il n'y pas de fonctions inline.

    Une idée de ce qui pourrait expliquer un tel comportement ?

    PS : je compil/link avec VS2008 et je parle pour une compil en O2

    Merci.

  2. #2
    Expert confirmé

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 033
    Billets dans le blog
    12
    Par défaut
    Je suppose que les 2 projets (Lib et Exe) sont compilés en O2 ?
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  3. #3
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 12
    Par défaut
    ouaip tout est en O2

    j'ai essayé de jouer avec les dizaines d'options de link de VS, mais rien y fait.

    Serait-il capable de faire une optimization de plus dans le cas où le code est directement compilé avec l'exe ? Mais je ne vois vraiment pas où...

  4. #4
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 12
    Par défaut
    J'avance dans un univers étrange.

    La différence de vitesse ne concerne qu'une fonction critique (couteuse).
    Si je déplace uniquement le source de cette fonction, je note la différence.

    Le pire est que l'appel à cette fonction peut rester dans la librarie...

    Mais cette fonction n'a rien de spécial. C'est quoi ce bordel ?

  5. #5
    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
    Quelle version de visual C++ ? tu as regardé les options de link-time optimisation ?
    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.

  6. #6
    Membre habitué
    Inscrit en
    Juin 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 12
    Par défaut
    VS 2008 + SP1

    En effet j'imagine que ca doit être un truc bizarre purement de chez Microsoft, mais j'ai joué avec toutes les options mais rien y fait, justement si quelqu'un maîtrise Visual Studio, une aide serait bienvenue.

    Il me reste l'option de linker /ltcg:pgoptimize que je n'ai pas encore fait fonctionner, à voir.

Discussions similaires

  1. Pourquoi mon code est plus lent que Arrays.sort
    Par alexis779 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 12/12/2006, 12h44
  2. [MMX] Optimisation d'un code C++ -> plus lent
    Par Laurent Gomila dans le forum x86 32-bits / 64-bits
    Réponses: 12
    Dernier message: 17/05/2006, 18h47
  3. Code Asm plus lent que le C !!!
    Par themadmax dans le forum x86 32-bits / 64-bits
    Réponses: 7
    Dernier message: 23/01/2006, 18h21
  4. [Firebird][Optimisation]Plus lent que le BDE!
    Par vincentj dans le forum Débuter
    Réponses: 3
    Dernier message: 07/02/2005, 15h48
  5. DBExpress est plus lent que BDE?
    Par palassou dans le forum Bases de données
    Réponses: 4
    Dernier message: 02/07/2004, 08h39

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