Page 1 sur 1

Différence ou pas ?

Publié : ven. 28/sept./2007 15:30
par Mytic
Je voudrai savoir s’il y’a une différence entre :

X = X + Y
Et
X+Y

Coté vitesse ?
:?

Publié : ven. 28/sept./2007 15:39
par Mytic
J’ai crée ce petit test, et le résultat montre qu’il y’a bien une grande différence.
La preuve en image (heu.. je veux dire en code)

Code : Tout sélectionner

Delay(1000)
x = 0
Debug "test1> x = x + 1"
t.d = ElapsedMilliseconds()
For i = 0 To 2000000
x+1 
Next i
r.s = StrD(ElapsedMilliseconds()-t)
Debug r
Delay(1000)
x = 0
Debug "test2> x+1"
t.d = ElapsedMilliseconds()
For i = 0 To 2000000
x+1 
Next i
r.s = StrD(ElapsedMilliseconds()-t)
Debug r
:!: :?:

Publié : ven. 28/sept./2007 15:45
par comtois
Pour faire des tests de performance il faut désactiver le débugueur, autrement dit remplace tes debug par des messageReqester() ou alors utilise la lib de Erix14 qui te donne même un résultat graphique :)

Publié : ven. 28/sept./2007 16:45
par Mytic
J’ai oublié de désactiver le débugueur.
Sans le débugueur sa donne le même résultat pour les deux calcules.
Donc c’est la même chose.
:D

Re: Différence ou pas ?

Publié : ven. 28/sept./2007 18:26
par Backup
Mytic a écrit :Je voudrai savoir s’il y’a une différence entre :

X = X + Y
Et
X+Y

Coté vitesse ?
:?
coté vitesse , il y en a pas, mais coté visibilité, pour moi ce ne devrai pas donner le meme résultat !! , cependant , je sais qu'en pure c'est pareil :?

pourtant dans

Code : Tout sélectionner

x=x+y
, il y a une affectation le signe "="
donc on remet le resultat dans X !!

en principe , ne devrai qu'afficher (ou renvoyer) le résultat de x plus y
, hors, je ne sais pourquoi Fred considère que x+y = x=x+y !!! :?

ce qui est parfaitement illogique, en fait !! puisqu'il n'y a pas d'affectation en clair , pas de "=" ... cherchez l'erreur :)

Publié : ven. 28/sept./2007 18:32
par Dr. Dri
c'est l'équivalent du "+=" d'autres langages, seulement il n'a pas utilisé la même syntaxe voila tout

Dri

Publié : sam. 29/sept./2007 16:29
par jerexgrz
personnellement,
on ajoute y à x ! donc on va remettre le nouveau resultat dans x. (d'ou l'egal) donc x+y => x = x+y

c'est + de la lecture qu'autre chose en faite !

Publié : sam. 29/sept./2007 16:43
par Backup
jerexgrz a écrit :personnellement,
on ajoute y à x ! donc on va remettre le nouveau resultat dans x. (d'ou l'egal) donc x+y => x = x+y

c'est + de la lecture qu'autre chose en faite !
pas vraiment anodin quand meme , dans pas mal de Basic

si tu fait seulement :

Code : Tout sélectionner

x=10
r=20
y= 60
for t=1 to 20
x+r
plot (x , y)
next t
tu vas te retrouver a dessiner a la meme coordonnée !! (30,60) !!

il faudrai faire

Code : Tout sélectionner

x=10
r=20
y= 60
for t=1 to 20
x=x+r
 plot (x , y)
next t
mais bon le tout est de le savoir :)