// Получить точность времени на миллисекунд на уровне (метод 1):
вар
T1, T2: Int64;
R1: Int64;
Начинать
T1: = getTickCount; // начать считать Windows API
Sleep (1000); {do ...} // Выполнить код, который будет включен
t2: = getTickCount; // Получить значение конечного количества
r1: = t2-t1; // Получить время времени, единица миллисекунд (мс)
ShowMessage (InttoStr (R1));
конец;
// Получить точность времени на миллисекунд на уровне (метод 2):
// Использование DateUtils; // Справочная дата
вар
T1, T2: tdateTime;
R1: Int64;
Начинать
T1: = now (); // Получить время начала
Sleep (1000); {do ...} // Выполнить код, который будет включен
t2: = now (); // Получить время окончания
r1: = секунды (T2, T1); // Получить время времени, единицы секунды (ы)
r1: = Millisecondsweed (T2, T1); // Получите время времени, единица миллисекунд (MS)
ShowMessage (InttoStr (R1));
конец;
// Примечание. После тестирования двух вышеупомянутых методов кажется, что они могут производить только 0,01 секунды точности времени после тестирования самостоятельно.
// Получить точность времени на уровне системы:
вар
C1: Int64;
T1, T2: Int64;
R1: двойной;
Начинать
QueryPerformanceFrequency (C1); // Windows API возвращает частоту подсчета (Intel86: 1193180) (получает количество вибраций высокопроизводительной частоты системы системы за одну миллисекунду)
QueryperformanceCounter (T1); // Windows API Получите значение счета начала
Sleep (1000); {do ...} // Выполнить код, который будет включен
QueryperformanceCounter (T2); // Получить значение конечного количества
r1: = (t2-t1)/c1; // Получить время времени, единицы секунды (ы)
r1: = (T2-T1)/C1*1000; // Получить время времени, единица миллисекунд (мс)
r1: = (T2-T1)/C1*1000000; // Получить время времени, микросекунд блока
ShowMessage (floattoStr (R1));
конец;