Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Milliseconds
Message
De
01/01/2018 13:52:42
 
 
À
01/01/2018 12:50:55
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Titre:
Versions des environnements
Visual FoxPro:
VFP 9 SP2
OS:
Windows 10
Divers
Thread ID:
01656863
Message ID:
01656871
Vues:
65
>I am sure this has been addressed before. But I would appreciate some quick help.
>
>I am performing some performance testing and have discovered that the Seconds() function may not be actuate. I discovered a UDF based on the SYS(2015), but I question its return. I would like to use the WinAPI GetTickCount(), but it only returns True, no tick count.
>
>Any other suggestions?

Based on code Mike Yearwood once wrote, while we were discussing performance issues:
#DEFINE LOOP_LENGTH 100000000

LOCAL Start AS Datetime
LOCAL Stop AS Datetime
LOCAL LoopIndex AS Number

LOCAL Buffer1 AS String
LOCAL Buffer2 AS String
LOCAL CurrentTickCount AS Number
LOCAL ElapsedSeconds AS Number

DECLARE INTEGER QueryPerformanceFrequency IN kernel32 STRING @Frequency
DECLARE INTEGER QueryPerformanceCounter IN kernel32 STRING @PerformanceCount

m.Buffer1 = SPACE(8)
m.Buffer2 = SPACE(8)

QueryPerformanceFrequency(@m.Buffer1)

m.TicksPerSecond = CTOBIN(m.Buffer1, "8")

m.Start = DATETIME()
QueryPerformanceCounter(@m.Buffer1)

FOR m.LoopIndex = 1 TO LOOP_LENGTH
	* dummy
ENDFOR

m.Stop = DATETIME() - m.Start
QueryPerformanceCounter(@m.Buffer2)

m.ElapsedSeconds = (CTOBIN(m.Buffer2, "8") - CTOBIN(m.Buffer1, "8")) / m.TicksPerSecond

? TEXTMERGE("<<m.Stop>> (based on DateTime) versus <<m.ElapsedSeconds>> (based on Win32)")
----------------------------------
António Tavares Lopes
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform