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 :

Rapidité d'un programme


Sujet :

C

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Rapidité d'un programme
    Bonjour,
    Je code des applications scientifiques en langage C. En général la longeur de l'execution des programmes demandent une rigueur dans l'algorithme. Mais je me pose cette question :
    Est ce que la rapidité d'un programme va dépendre d'autre chose que de son algorithme : par exemple du compilateur?

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Je dirais que la rapidité d'un programme dépend de 4 facteurs
    • En 1er, l'algorithme. Un bon algorithme va toujours plus vite qu'un mauvais algorithme. J'enfonce des portes ouvertes en disant cela mais il me semble que c'est primordiale. Si on aborde la multiplaction de grands nombres sans connaitre l'algorithme de la multiplication rapide, c'est mal parti pour avoir un truc performant.
    • En 2nd, je dirais la compétence du développeur qui va implémenter l'algorithme. En effet, passer des std::string par valeur au lieu de les passer par référence peut avoir un impact non négligeable au final (de même que d'utiliser std::vector au lieu de std::list ou l'inverse dans un contexte particulier).
    • En 3eme, je mettrai les performances pures de la machine. Il est clair qu'un programme est plus performant sur une machine à 2 Ghz avec 4 GO de RAM que le même programme sur un PIII à 433MHZ avec 128Mo de RAM.
    • Et enfin, je dirais les performances du compilateur ou plutôt de son optimiseur de code. Mais je pense que ce point est vraiment le dernier à prendre en compte.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Une fois que l'on a optimisé le code, que l'on utilise des machines puissantes. Est ce que je peux accélérer mon processus, en fonction du compilateur et quelle gain de temps en plus des options d'optimisation

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    ça dépend beaucoup des applis.

    De plus, à partir du flag -O3 commencent à arriver des problèmes (fonctions non correctes, sorties incohérentes, problèmes mémoires, etc etc).

    -O2 est le max que j'ai utilisé.. Mais par exemple ne marche pas pour ce qui touche à la décompression au vol des mpegs..

    Cependant, une optimisation du code peut être faite assez souvent qui peut faire grignoter des %, voire même gagner des facteurs du simple au double (faire les calculs d'une autre manière, calculer une seule fois l'adresse où une valeur sera mise et non pas se référer toujours à tab[i+dim1*j], etc etc... vérifier les ordres dans les boucles,...)

    Fondamentalement, sinon, ce serait être multi-processeurs et faire du parallèlisme.. Si c'est faisable. Mais uniquement une fois que tout le reste est fait..
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    je te remercie de ta réponse connais tu des tutoriaux qui expliquent, qui listent des astuces, permettant de gagner du temps.
    Merci de vos réponses?

  6. #6
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    je n'en connais pas vraiment..

    Soit c'est orienté machine (paramètrages), soit c'est trop général.

    Pour les options, voir les man pages de gcc.

    Sinon de manière générale toute optimisation est dépendante de ce que l'on souhaite : optimiser mémoire, vitesse, les 2, continuer à garantir la lisibilité, etc etc..

    C'est du cas par cas..

    Par contre, une fois que tu l'as fais (ou vu faire) une fois, tu commences à connaître certains trucs.

    Il faudrait un exemple pour montrer..
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

Discussions similaires

  1. problème de rapidité du programme
    Par Hellhand dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 31/08/2012, 10h28
  2. Rapidité d'exécution entre BDD et programme
    Par sebnantes dans le forum VB.NET
    Réponses: 14
    Dernier message: 26/08/2010, 14h02
  3. Réponses: 4
    Dernier message: 18/05/2009, 19h13
  4. [LabVIEW 7.0 Express] Rapidité du programme
    Par Kartoon67 dans le forum LabVIEW
    Réponses: 3
    Dernier message: 06/05/2009, 10h29
  5. tester la rapidité d'un programme c++
    Par kreeks dans le forum Choisir un environnement de développement
    Réponses: 5
    Dernier message: 04/06/2007, 14h12

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