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 :

++rapide ou rapide++ ?


Sujet :

C

  1. #1
    Membre éprouvé Avatar de Kimael
    Inscrit en
    Avril 2002
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 151
    Par défaut ++rapide ou rapide++ ?
    Bonjour,

    un pote et moi-même tenons un discours différent : je soutiens que [++ rapide] est plus rapide que [rapide++] à s'exécuter, tandis que lui dit que c'est aussi rapide.

    Notre problème est le suivant : ni l'un ni l'autre n'a moyen de prouver qu'il a raison, et personne autour n'a pu nous éclairer...

    Un avis ? Des preuves ?
    Mirciiiii

  2. #2
    Membre éclairé Avatar de Thrystan
    Inscrit en
    Avril 2003
    Messages
    346
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 346
    Par défaut
    S'il y a une différence, ça ne doit pas se jouer à grand chose...

    Enfin, je n'ai pas la réponse, mais je pense que l'important est de choisir la syntaxe qui te convient le mieux... c'est une histoire de lisibillité du code.

    Thrystan.

  3. #3
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Pour les types de bases ça ne change rien, mais ça devrait. Faut remercier le compilo ...
    Pour un objet C++ ca peut avoir un sérieux impact, d'ou l'utilité de prendre une bonne habitude, un jour ça paye. D'autres disent aussi que c'est de la logique : pourquoi demander une copie de l'objet si on n'en n'a pas besoin ? Car i++ effectue une copie de i (enfin, en théorie, mais en pratique le compilo optimise), contrairement à ++i. C'est l'économie de cette copie sur les objets volumineux qui rend plus rapide ...

  4. #4
    Membre éprouvé Avatar de Kimael
    Inscrit en
    Avril 2002
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 151
    Par défaut
    Thrystan >> Merci mon gars, mais moi ce que je veux savoir c'est : au niveau "assembleur" c'est quoi le plus rapide :

    Oui, tu me dira, le plus rapide c'est que j'arrête de perdre mon temps à vouloir gagner 3 fois rien en temps d'exécution

    Mais si je n'ai pas la réponse avant ce soir, je me connais, ça va m'empêcher de dormir !!! Alors, s'il vous plait, aidez-moi... :'?

  5. #5
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    C'est pareil pour un type primitif, mais c'est grace à l'intelligence du compilo qui transforme le i++ en ++i.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2002
    Messages : 290
    Par défaut
    Citation Envoyé par Kimael
    Thrystan >> Merci mon gars, mais moi ce que je veux savoir c'est : au niveau "assembleur" c'est quoi le plus rapide :

    Oui, tu me dira, le plus rapide c'est que j'arrête de perdre mon temps à vouloir gagner 3 fois rien en temps d'exécution

    Mais si je n'ai pas la réponse avant ce soir, je me connais, ça va m'empêcher de dormir !!! Alors, s'il vous plait, aidez-moi... :'?
    Ca veut dire quoi "au niveau assembleur" ?

    HW a donné la réponse complete, il n'y a rien a ajouter...

  7. #7
    Membre éprouvé Avatar de Kimael
    Inscrit en
    Avril 2002
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 151
    Par défaut
    Citation Envoyé par HW
    Pour les types de bases ça ne change rien, mais ça devrait. Faut remercier le compilo ...
    Pour un objet C++ ca peut avoir un sérieux impact[...]C'est l'économie de cette copie sur les objets volumineux qui rend plus rapide ...

    Oh, tu sais que je t'aime toi

    Bon, bah c'est cool , je peux dormir tout de suite
    C'est le chef qui ne va pas être content ! Mais bon, je vais pouvoir lui faire croire que j'optimise à l'extrème le code... car je bosse en C !


  8. #8
    Membre éprouvé Avatar de Kimael
    Inscrit en
    Avril 2002
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 151
    Par défaut
    Citation Envoyé par Gandalf
    HW a donné la réponse complete, il n'y a rien a ajouter...
    Oui, mais c'est la magie des forums : on réponds plus vite que les questions arrivent !

    Merci à tous.

    PS: "au niveau assembleur" ça veut dire "une fois compilé".
    C'est mon dernier mot ! Ok je

  9. #9
    Membre éprouvé Avatar de Metal Tom
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 119
    Par défaut
    Si tu veux tester tu fais un petit programme avec une grosse boucle genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(i=0 ; i<1000000 ; i++);
    et chronomètres.
    T'en fais un autre avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(i=0 ; i<1000000 ; ++i);
    Et surtout t'oublies pas de mettre le niveau d'optimisation à 0 sur ton compilateur :-)

    Et veilles à ce que le nombre de fois que ta boucle s'exécute est moins grande que le maximum des int. Sinon tu risque de tourner indéfiniment :-(

  10. #10
    Membre éprouvé Avatar de Kimael
    Inscrit en
    Avril 2002
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 151
    Par défaut
    Citation Envoyé par Metal Tom
    Si tu veux tester tu fais un petit programme avec une grosse boucle genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(i=0 ; i<1000000 ; i++);
    et chronomètres.
    T'en fais un autre avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(i=0 ; i<1000000 ; ++i);
    Tom on t'a jamais dit que tu faisais trop de metal
    Citation Envoyé par Le barbare
    Baston !
    La théorie me suffit tout ce que je voulais c'était avoir raison par rapport à mon pote

  11. #11
    Membre éprouvé Avatar de Metal Tom
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 119
    Par défaut
    Je donnais des arguments à ton pote pour essayer de te contredire en ayant de la chance que l'expérience fasse le contraire ...

    Mais bon. Souvent quand je cherche à savoir ce que fait ci ou ça, je teste. C'est ce qu'il y a de mieux à faire souvent.

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 304
    Par défaut
    Salut
    Jai fait des test parce que je voulais aussi connaitre la réponse a ton probleme. Malgres les réponses que les autres ont pu donné je vais te donner la mienne.
    J'ai testé un programme utilisant rapide++ et un autre avec la structure identique utilisant ++rapide. Ensuite j'ai utilisé une procédure de calcul de cycles cpu et le résultat est strictement équivalent quelquesoit le programme utilisé!
    Que la paix regne desormais entre vous.
    A bientot

  13. #13
    Membre éprouvé Avatar de Metal Tom
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 119
    Par défaut
    t'as enlevé les optimisations ?

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 304
    Par défaut
    Citation Envoyé par Metal Tom
    t'as enlevé les optimisations ?
    sans aucune

  15. #15
    Membre éprouvé Avatar de Metal Tom
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 119
    Par défaut
    Attention, en logique "sans aucune" est équivalent à "au moins une".

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 304
    Par défaut
    Citation Envoyé par Metal Tom
    Attention, en logique "sans aucune" est équivalent à "au moins une".
    Tres bien oublions la logique!!! Je n'ai pas utilisé d'optimisation

  17. #17
    Membre éprouvé Avatar de Kimael
    Inscrit en
    Avril 2002
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 151
    Par défaut
    Citation Envoyé par KORTA
    Jai fait des test[...]
    J'ai testé un programme utilisant rapide++ et un autre avec la structure identique utilisant rapide--.
    Euh, moi je voulais comparer ++rapide et rapide++ pas rapide++ et rapide-- ! Ou alors j'ai pas bien compris ce que tu as testé... :

    Citation Envoyé par KORTA
    Que la paix regne desormais entre vous.
    A bientot
    C'est déjà le cas, merci (la paix éternelle pour lui dans 5 minutes )

  18. #18
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    304
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 304
    Par défaut
    Citation Envoyé par Kimael
    Citation Envoyé par KORTA
    Jai fait des test[...]
    J'ai testé un programme utilisant rapide++ et un autre avec la structure identique utilisant rapide--.
    Euh, moi je voulais comparer ++rapide et rapide++ pas rapide++ et rapide-- (oups)) ! Ou alors j'ai pas bien compris ce que tu as testé... :

    Citation Envoyé par KORTA
    Que la paix regne desormais entre vous.
    A bientot
    C'est déjà le cas, merci (la paix éternelle pour lui dans 5 minutes )
    Mea culpa une erreur s'est glissée dans mon rapport, mais j'ai bien testé ce que tu demandais !

  19. #19
    Membre éprouvé Avatar de Kimael
    Inscrit en
    Avril 2002
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 151
    Par défaut
    Citation Envoyé par KORTA
    Mea culpa une erreur s'est glissé dans mon rapport, mais j'ai bine testé ce que tu demandais !
    8) Yo man, merci man

    PS: pourrais-tu faire un effort sur l'orthographe ? Merci
    C'est rien, tu t'en remettra

  20. #20
    Membre averti
    Inscrit en
    Juin 2003
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 32
    Par défaut
    Pour ce qui est des erreurs en orthographe, il y a un "s" à "remettras"

    Deuxième personne du futur de l'indicatif

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Comment recevoir rapidement une réponse à votre question ?
    Par Community Management dans le forum Windows
    Réponses: 3
    Dernier message: 17/08/2014, 02h28
  2. Calcul rapide de percentiles
    Par benj63 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 08/12/2006, 14h50
  3. LES TECHNIQUES DES SGBDR / MySQL rapide ???
    Par SQLpro dans le forum Langage SQL
    Réponses: 1
    Dernier message: 12/09/2003, 11h16
  4. Accés rapide aux propriétés d'un Objet
    Par Alacazam dans le forum C++Builder
    Réponses: 4
    Dernier message: 28/11/2002, 21h56
  5. [VBA Excel] Effacer rapidement une feuille
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/10/2002, 13h12

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