Addition (et autre) - Rapidité

cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 - 30 déc. 2004 à 21:43
Stepharcher Messages postés 117 Date d'inscription samedi 12 avril 2003 Statut Membre Dernière intervention 8 septembre 2008 - 8 févr. 2005 à 13:16
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

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
30 déc. 2004 à 21:53
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++
0
cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 3
30 déc. 2004 à 21:59
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...
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
30 déc. 2004 à 22:04
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++
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
30 déc. 2004 à 22:06
Pour ton exemple, c'est i++ le plus rapide.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
30 déc. 2004 à 22:15
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++
0
cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 3
30 déc. 2004 à 22:16
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...
0
cs_Matt67 Messages postés 549 Date d'inscription samedi 6 septembre 2003 Statut Membre Dernière intervention 6 mars 2010 3
31 déc. 2004 à 13:49
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...
0
Gendal67 Messages postés 627 Date d'inscription mercredi 16 juin 2004 Statut Membre Dernière intervention 24 juillet 2011 2
31 déc. 2004 à 21:01
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!! :-))
0
Stepharcher Messages postés 117 Date d'inscription samedi 12 avril 2003 Statut Membre Dernière intervention 8 septembre 2008
8 févr. 2005 à 13:16
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
0
Rejoignez-nous