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 :

G++ et LTO (Link Time Optimization)


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 199
    Points : 106
    Points
    106
    Par défaut G++ et LTO (Link Time Optimization)
    Bonjour,

    Je viens à vous pour un problème d'optimisation. Je suis sous g++ 4.6.1 sous Ubuntu x86-64. Mes code sont compilés en release avec -O2

    J'ai une portion de code localisée qui travaille sur des vecteurs chargés depuis un fichier. Sur de petits fichiers, ce ne pose pas de problème. Sur un fichier de l'ordre de 40Mo, la portion passe à 9s.

    Je cherche donc à réduire le temps. Mais avant de commencer à toucher à l’algorithmie, je regarde ce dont est capable g++. Et là je tombe sur les options -flto -fwhole-program qui sont censé activées la Link Time Optimization.

    Mais là, grosse déception, le temps d’exécution passe à 25s Alors je me tourne vers vous pour savoir si vous avez déjà eu un comportement pareil?

    Merci beaucoup!

    P.S. Impossible de poster le code il est trop long. Je vais essayer de faire un code d'exemple assez petit!

  2. #2
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Peux tu donner la listes des options de compilation utilisées sans LTO et les options avec LTO ?

    Il faut pas enlever les options d'optimisation lorsqu'on active LTO.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 199
    Points : 106
    Points
    106
    Par défaut
    Avec LTO:
    Compilation : -std=c++0x -O3 -flto -fwhole-program
    Link : -flto -fwhole-program

    Sans LTO:
    Compilation : -std=c++0x -O3
    Link :

    J'ai essayer avec un snapshot de g++ 4.7 d'un mois, c'est le même résultat.

  4. #4
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Essaie :

    Compilation : -std=c++0x -O3 -flto -fwhole-program
    Link : -O3 -flto -fwhole-program

    Normalement, ça devrait marcher.

    Et si jamais, essaie aussi sans le f-whole-program, on sait jamais

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 199
    Points : 106
    Points
    106
    Par défaut
    Effectivement le -O3 en phase de link me fais revenir sur les même temps. J'aurais du y penser avant

    Merci beaucoup!

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

Discussions similaires

  1. Communication link failure. (Operation timed out)
    Par sinoun dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 11/04/2012, 16h52
  2. Link-Time Code Generation (LTCG) sous GCC
    Par étoile de mer dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 16/10/2009, 19h28
  3. Réponses: 6
    Dernier message: 30/06/2009, 18h15
  4. L'avenir du BDE et des SQL Links révélé ! <officiel>
    Par Merlin dans le forum Bases de données
    Réponses: 12
    Dernier message: 02/06/2006, 10h18
  5. [Kylix] Kylix 3 C++ OE et fichier time.h
    Par Max13 dans le forum EDI
    Réponses: 7
    Dernier message: 30/10/2002, 14h55

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