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

Code::Blocks Discussion :

Flag inconnu sur Code::Blocks : CPU architecture tuning


Sujet :

Code::Blocks

  1. #1
    Membre habitué
    Avatar de Glân von Brylân
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2014
    Messages : 133
    Points : 186
    Points
    186
    Par défaut Flag inconnu sur Code::Blocks : CPU architecture tuning
    Bonjour !

    Je viens d'installer la toute nouvelle version de Code::Blocks (sortie il n'y a même pas un mois) et en réglant mes flags je suis tombé sur la catégorie "CPU architecture tuning" que je ne me souvenais pas avoir vue dans la version précédente...
    Quelqu'un peut-il me dire de quoi il s'agit exactement ? Qu'est-ce qui changera selon ce que je coche ?
    Merci d'avance.
    Les pointeurs intelligents, c'est mignon mais trop long à écrire.

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Ça veut dire que le programme sera plus rapide sur un type de microprocesseur en particulier, même au détriment des performances sur les autres microprocesseurs compatibles.

    Il me semble que gcc accepte deux options différentes, l'une qui préserve la compatibilité, l'autre qui ne laisse un programme tourner que sur l'architecture en question. "tuning" implique la première à mes yeux.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre habitué
    Avatar de Glân von Brylân
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2014
    Messages : 133
    Points : 186
    Points
    186
    Par défaut
    Je vois merci !
    Je pense que je vais tout laisser décoché vu que je vise à programmer pour distribuer mes créations publiquement...
    Merci encore !
    Les pointeurs intelligents, c'est mignon mais trop long à écrire.

  4. #4
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 611
    Points
    30 611
    Par défaut
    Salut,

    Le but de cette option (qui existe depuis toujours à mon sens sous Code::Blocks, bien qu'elle n'ait pas forcément été dans une liste distincte ) est surtout de faire en sorte que le compilateur utilise un jeu d'instructions plus ou moins restreint afin d'assurer une compatibilité minimale envers les processeurs les plus anciens.

    Tu n'ignores pas que le nombre d'instructions comprises par les processeurs n'a fait qu'augmenter au fur et à mesure des évolutions qu'ils ont subis.

    Il y a, par exemple, un monde de différence entre les instructions comprises par le 386 "de base" et le Pentium I. L'arrivée des différentes versions de MMX (pour ne citer qu'elles) a aussi été à chaque fois des évolutions majeures, qui n'étaient, bien évidemment, jamais comprises par la "version précédente" .

    L'idée de base de ce flag est que, plus tu réduis le nombre d'instructions comprises par le processeur, plus tu augmente le nombre de processeurs capables d'utiliser ton application, et plus tu permets donc à de "vieilles" machine de l'utiliser.

    Pendant tout un temps, linux (et tout ce qu'il présentait) était compilé "de base" avec le flag --march=i386, parce qu'il y avait encore, à l'époque de PII et PIII, beaucoup de machines utilisant ces "antiquités". Maintenant, le flag souvent utilisé pour une compatibilité aussi large que possible est --march=i686 lorsqu'on compile en mode 32bits. Mais on gagne en compatibilité ce que l'on perd en optimisations potentielles . Il en va d'ailleurs de même pour le flag spécifique au mode 64 bits couramment utilisé "--march=k8".

    Pour certaines applications, cela ne posera pas de problèmes majeurs, mais pour d'autres, il peut être particulièrement dommage de ne pas disposer de "toutes les optimisations possibles"
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  5. #5
    Membre habitué
    Avatar de Glân von Brylân
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2014
    Messages : 133
    Points : 186
    Points
    186
    Par défaut
    Donc si j'ai bien compris, si je veux que mon programme soit un maximum compatible, je dois tout cocher ?
    Les pointeurs intelligents, c'est mignon mais trop long à écrire.

  6. #6
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 611
    Points
    30 611
    Par défaut
    Citation Envoyé par Neoflash Okashi Voir le message
    Donc si j'ai bien compris, si je veux que mon programme soit un maximum compatible, je dois tout cocher ?
    Non, je t'expliquais comment fonctionnent ces flags, et tu ne peux de toutes manières mettre qu'un seul flag march comme option transmise à Gcc.

    Si tu veux que ton programme soit un minimum compatible, compile le en 32 bits avec le flag --march=i686.
    Mais il faut te dire que le flag --march=i686 correspond à des processeurs qui tournaient sous windows 98 à peu près. Les processeurs qui tournaint sous xp correspondent à peu près aux générations PIII et PIV

    L'un dans l'autre, il faudrait déjà un très vieux pc pour que le processeur ne comprenne que les instructions du 686

    Sinon, le mieux est encore de ne simplement pas préciser ce flag. Les réglages par défaut de Gcc devraient faire l'affaire.
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  7. #7
    Membre habitué
    Avatar de Glân von Brylân
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2014
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2014
    Messages : 133
    Points : 186
    Points
    186
    Par défaut
    D'accord je laisse tout décoché donc ! Merci beaucoup !
    Les pointeurs intelligents, c'est mignon mais trop long à écrire.

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

Discussions similaires

  1. Quel est votre avis sur Code::Blocks ?
    Par doudoustephane dans le forum Code::Blocks
    Réponses: 54
    Dernier message: 12/06/2009, 12h58
  2. question sur Code::blocks
    Par deubelte dans le forum Code::Blocks
    Réponses: 3
    Dernier message: 04/01/2007, 16h44
  3. À lire avant de poster vos questions sur Code::Blocks
    Par khayyam90 dans le forum Code::Blocks
    Réponses: 0
    Dernier message: 12/07/2006, 09h23
  4. besoin d'aide sur code Block
    Par Antalus dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 31/01/2006, 19h38

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