// Obtenez la précision du temps de niveau milliseconde (méthode 1):
var
T1, T2: INT64;
R1: INT64;
Commencer
t1: = getTtickCount; // Obtenez un début de comptage de l'API Windows
Sleep (1000); {do ...} // Exécutez le code à chronométrer
t2: = getTtickCount; // Obtenez la valeur de compte final
R1: = T2-T1; // Obtenez le temps de synchronisation, des millisecondes d'unité (MS)
ShowMessage (IntToStr (R1));
fin;
// Obtenez une précision de temps au niveau des millisecondes (méthode 2):
// Utiliser DateUtils; // Unité de référence DateUtils
var
T1, T2: tdatetime;
R1: INT64;
Commencer
t1: = maintenant (); // Obtenez l'heure de début
Sleep (1000); {do ...} // Exécutez le code à chronométrer
T2: = maintenant (); // Obtenez l'heure de fin
R1: = secondsbetween (T2, T1); // Obtenez le temps de synchronisation, secondes (s) unit
R1: = millisecondesBetween (T2, T1); // Obtenez le temps de synchronisation, des millisecondes unitaires (MS)
ShowMessage (IntToStr (R1));
fin;
// Remarque: Après avoir testé les deux méthodes ci-dessus, il semble qu'ils ne peuvent produire que 0,01 seconde de précision de synchronisation après les tests par moi-même.
// Obtenez la précision du temps au niveau du système:
var
C1: INT64;
T1, T2: INT64;
R1: double;
Commencer
QueryPerformanceFrequency (C1); // L'API Windows renvoie la fréquence de comptage (Intel86: 1193180) (obtient le nombre de vibrations du compteur de fréquence de haute performance du système en un milliseconde)
QueryPerformanceCounter (T1); // API Windows Obtenez la valeur de comptage de démarrage
Sleep (1000); {do ...} // Exécutez le code à chronométrer
QueryperformanceCounter (T2); // Obtenez la valeur de comptage final
R1: = (T2-T1) / C1; // Obtenez le temps de synchronisation, secondes (s) unit
R1: = (T2-T1) / C1 * 1000; // Obtenez le temps de synchronisation, des millisecondes d'unité (MS)
R1: = (T2-T1) / C1 * 1000000; // Obtenez le temps de synchronisation, microsecondes unitaires
ShowMessage (FloattoStr (R1));
fin;