// Obtener precisión del tiempo a nivel de milisegundos (método 1):
varilla
T1, T2: int64;
R1: int64;
Comenzar
t1: = getTickCount; // Comience a contar la API de Windows
dormir (1000); {do ...} // Ejecutar el código a ser cronometrado
t2: = getTickCount; // Obtener el valor de conteo final
R1: = T2-T1; // Obtenga el tiempo de temporización, Unidad MilliseConds (MS)
showMessage (intToStr (R1));
fin;
// Obtener precisión de tiempo a nivel de milisegundos (método 2):
// Use DateUtils; // Unidad de referencia DateUtils
varilla
T1, T2: Tdatetime;
R1: int64;
Comenzar
t1: = ahora (); // Obtenga la hora de inicio
dormir (1000); {do ...} // Ejecutar el código a ser cronometrado
t2: = ahora (); // Obtenga el tiempo de finalización
R1: = Secondsbetween (T2, T1); // Obtenga el tiempo de tiempo, Unidad Seconds (s)
R1: = milisegundsbetween (T2, T1); // Obtenga el tiempo de tiempo, Unidad MilliseConds (MS)
showMessage (intToStr (R1));
fin;
// Nota: Después de probar los dos métodos anteriores, parece que solo pueden producir 0.01 segundos de precisión de tiempo después de probar por mí mismo.
// Obtener precisión del tiempo a nivel de sistema:
varilla
C1: int64;
T1, T2: int64;
R1: doble;
Comenzar
QueryperformanceFrequency (C1); // Windows API Devuelve la frecuencia de conteo (Intel86: 1193180) (obtiene el número de vibraciones del contador de frecuencia de alto rendimiento del sistema en un milisegundo)
QueryperformancEcounter (T1); // Windows API Obtenga el valor de conteo de inicio
dormir (1000); {do ...} // Ejecutar el código a ser cronometrado
QUERYPERFORGANCECOUNTER (T2); // Obtenga el valor de conteo final
R1: = (T2-T1)/C1; // Obtenga el tiempo de sincronización, Segundos de la unidad (s)
R1: = (T2-T1)/C1*1000; // Obtenga el tiempo de sincronización, Unidad MilliseConds (MS)
R1: = (T2-T1)/C1*1000000; // Obtenga el tiempo de tiempo, Microsegundos de la unidad
showMessage (FloatToStr (R1));
fin;