Addition (et autre) - Rapidité

Signaler
Messages postés
549
Date d'inscription
samedi 6 septembre 2003
Statut
Membre
Dernière intervention
6 mars 2010
-
Messages postés
117
Date d'inscription
samedi 12 avril 2003
Statut
Membre
Dernière intervention
8 septembre 2008
-
Bonsoir,

i++;
i += 1;
i = i + 1;
Trois façons d'écrire la même chose (sans chercher la petite bête) mais est ce plus rapide de l'ecrire avec une des trois ou c'est une simple mise en forme differente ???
je suppose que c'est pareil pour
-=
[=
&=
<<=
>>=
...
En fait, je cherche à gagner quelques millisecondes par ci par la dans un projet qui fait moultes calculs.

Merci pour vos réponses,

Matt...

9 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Il n'y a rien ni personne a croire en pareil cas, quand on traque les cycles faut comparer le listing asm produit par le comilo.

ciao...
BruNews, MVP VC++
Messages postés
549
Date d'inscription
samedi 6 septembre 2003
Statut
Membre
Dernière intervention
6 mars 2010

Merci pour la réponse rapide.
Ne connaissant rien en asm et ne sachant pas comment sortir du code en asm (VC++6) je vais m'en tenir à ce que j'ai codé, et de plus je ne pense pas que le gain de temps soit vraiment perceptible.
J'aurai voulu essayer...
Merci encore,

Matt...
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
onglet C++, tu indiques quels fichiers de sortie tu veux.
'Code source + listing asm' est pratique pour voir ce qu'il a fait.

ciao...
BruNews, MVP VC++
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Pour ton exemple, c'est i++ le plus rapide.
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Il n'y a aucune obligation que soit cela le plus rapide, dependra de comment le compilo va traduire en fonction de ce qu'il trouve.

ciao...
BruNews, MVP VC++
Messages postés
549
Date d'inscription
samedi 6 septembre 2003
Statut
Membre
Dernière intervention
6 mars 2010

Merci BruNews, je vais regarder, histoire de voir ce que ca donne.

luthor : Ok pour le i++, ceux ci, j'en ai pas trop (boucle for), en fait j'ai beaucoup de toto[i] *= cos(tata * tutu)... ou des i <<=1 mais bon, laisse tomber, je vais regarder ce que donne l'asm (demain on est vendredi, pour finir la semaine c'est bien) et comme je le disais, je ne sais pas si le gain de temps sera perceptible...

Merci encore,

Matt...
Messages postés
549
Date d'inscription
samedi 6 septembre 2003
Statut
Membre
Dernière intervention
6 mars 2010

Bonjour,

J'ai fait un test avec les trois façons d'ecrire et le compilo en asm me met exactement les mêmes lignes de code donc conclusion pour mon code pas de gain de temps....

Merci encore pour vos réponses,

Matt...
Messages postés
627
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
24 juillet 2011

Oui, BruNews a raison, cela dépend uniquement de l'interprétation du compilo...ce que ej peux te dire par contre, c'est que si tu optes pour des boucles for, déclare tes valeurs en 'register' comme suit (ça accélère un peu +) :

register int i;

for (i = 0; i < 5000; i++)
  //instruction


Gendal67, Dev-C++ 4.9.9.1, J'adore cppfrance!! :-))
Messages postés
117
Date d'inscription
samedi 12 avril 2003
Statut
Membre
Dernière intervention
8 septembre 2008

D'une manière général, pour tester un code, tu le lances 10 000 000 de fois et tu regardes le temps qu'il met. Tu fais de même avec tes autres codes et tu peut comparer le plus rapide.

Stéph