

*****************************
J'ai adapté le code pour purebasic, le resultas est ci-dessous :
Calcul sur les nombre entiers :
Blitzbasic Purebasic
Addition 74.0 798
soustraction 73.0 800
multiplication 74.0 845
division 723.0 1185
Calcul sur les nombre reels :
Addition 212.0 801
soustraction 211.0 800
multiplication 215.0 800
division 464.0 920
Bon, ce n'est pas etonnant, la version demo de pure ne permet pas de desactiver le mode debug, mais ce qui est bizarre, c'est que le temps de calcul est quasiment similaire sur les variables integer et float, c'est la premiere fois que je vois ca, en general j'utilise beaucoup les entiers avec le basic codés sur 2 octects pour accelerer tous les traitements, regardez par exemple la difference avec le calcul sous blitzbasic...
Je serais curieux de voir ce ca donne avec une version complete de pureb, si quelqu'un veut faire le test ?
Voici le code :
Code : Tout sélectionner
; ****************** Code PUREBASIC ******************************************
DefType.w Boucle,n,i,V1,V2
DefType.f CALC,FIN,DEB,res2,V22,V12
Temp$=""
OpenConsole()
Boucle = 32000
GloBoucle = 1000
PrintN ("Boucle Calcul Deux Variables 32000")
PrintN ("Fois 1000 Fois De Suite")
;-------------------------------------------------------------------------------
; CALCUL SUR LES ENTIERS
;
;****** MODULE TEST ********************************************************
PrintN ("")
PrintN ("")
PrintN ("CALCUL SUR DES NOMBRES ENTIERS")
PrintN ("")
res = 0: V1 = 250: V2 = 100
DEB = ElapsedMilliseconds()
For n = 1 To GloBoucle
For i = 1 To Boucle
res = V1 + V2
Next
Next
FIN = ElapsedMilliseconds()
CALC = (FIN - DEB )
PrintN ("ADDITION : "+Str(CALC))
;****** MODULE TEST ********************************************************
res = 0: V1 = 250: V2 = 100
DEB = ElapsedMilliseconds()
For n = 1 To GloBoucle
For i = 1 To Boucle
res = V1 - V2
Next
Next
FIN = ElapsedMilliseconds()
CALC = (FIN - DEB )
PrintN ("SOUSTRACTION : "+Str(CALC ))
;****** MODULE TEST ********************************************************
res = 0: V1 = 250: V2 = 100
DEB = ElapsedMilliseconds()
For n = 1 To GloBoucle
For i = 1 To Boucle
res = V1 * V2
Next
Next
FIN = ElapsedMilliseconds()
CALC = (FIN - DEB )
PrintN ("MULTIPLICATION : "+Str(CALC ))
;****** MODULE TEST ********************************************************
res = 0: V1 = 250: V2 = 100
DEB = ElapsedMilliseconds()
For n = 1 To GloBoucle
For i = 1 To Boucle
res = V2 / V1
Next
Next
FIN = ElapsedMilliseconds()
CALC = (FIN - DEB )
PrintN ("DIVISION : "+Str(CALC ))
;-------------------------------------------------------------------------------
; CALCUL SUR LES REELS
PrintN ("")
PrintN ("")
PrintN ("CALCUL SUR DES NOMBRES REELS")
PrintN ("")
res2 = 0: V12 = 250: V22 = 100
DEB = ElapsedMilliseconds()
For n = 1 To GloBoucle
For i = 1 To Boucle
res2 = V12 + V22
Next
Next
FIN = ElapsedMilliseconds()
CALC = (FIN - DEB )
PrintN ("ADDITION : "+Str(CALC ))
;****** MODULE TEST ********************************************************
res2 = 0: V12 = 250: V22 = 100
DEB = ElapsedMilliseconds()
For n = 1 To GloBoucle
For i = 1 To Boucle
res2 = V12 - V22
Next
Next
FIN = ElapsedMilliseconds()
CALC = (FIN - DEB )
PrintN ("SOUSTRACTION : "+Str(CALC ))
;****** MODULE TEST ********************************************************
res2 = 0: V12 = 250: V22 = 100
DEB = ElapsedMilliseconds()
For n = 1 To GloBoucle
For i = 1 To Boucle
res2 = V12 * V22
Next
Next
FIN = ElapsedMilliseconds()
CALC = (FIN - DEB )
PrintN ("MULTIPLICATION : "+Str(CALC ))
;****** MODULE TEST ********************************************************
res2 = 0: V12 = 250: V22 = 100
DEB = ElapsedMilliseconds()
For n = 1 To GloBoucle
For i = 1 To Boucle
res2 = V22 / V12
Next
Next
FIN = ElapsedMilliseconds()
CALC = (FIN - DEB )
PrintN ("DIVISION : "+Str(CALC ))
Input()
CloseConsole()
End