Petit bout de code tout simple

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Petit bout de code tout simple

Message par Chris »

Je me suis amusé à faire un petit bout de code pour tester le temps qui est utilisé par un code pour se terminer.

Ca tient dans deux petites procédures, StartTest() et StopTest(), et une fois le test terminé, ça affiche le résultat dans la console, histoire de ne pas fausser la mesure avec le débugger.

Voilà le code:

Code : Tout sélectionner

ProcedureDLL StartTest()
  Global TimeStart
  TimeStart = GetTickCount_()
EndProcedure

ProcedureDLL StopTest()
  M_Sec = GetTickCount_()-TimeStart
  
  Heures = M_Sec/3600000
  R_h = M_Sec - Heures*3600000
  
  Minutes = R_h/60000
  R_m = R_h - Minutes*60000
  
  Secondes = R_m/1000
  R_s = R_m - Secondes*1000
  
  MilliSecondes = R_s
  
  Duree$ = RSet(Str(Heures),2,"0")+":"+RSet(Str(Minutes),2,"0")+":"+RSet(Str(Secondes),2,"0")+" - "+RSet(Str(MilliSecondes),3,"0")

  Fin$ = "Duree du test : "+Duree$
  OpenConsole()
  PrintN("")
  PrintN(Fin$)
  PrintN("")
  PrintN("Soit, "+(Str(M_Sec))+" millisecondes")
  PrintN("")
  PrintN("")
  Print("Pressez une touche pour quitter")
  
  Repeat
    If Inkey() : CloseConsole() : End : EndIf
  ForEver
EndProcedure
J'en ai fait une petit lib avec TailBite, mais on peut aussi l'utiliser comme un fichier Include normal.

J'ai testé avec le code suivant:

Code : Tout sélectionner

;IncludeFile "Speed_Proc.pb"

StartTest()

f.f = 1
For j = 0 To 1600
  For t = 1 To 2500000
    f = f * 1.00003
  Next
Next

StopTest()
Il suffit d'appeler StartTest() avant de commencer le test, et StopTest() quand le code à tester à terminé son boulot.

Alors, si ça peut être utile à quelqu'un !!!

Chris :)