// 밀리 초 레벨 시간 정확도를 가져옵니다 (메소드 1) :
var
T1, T2 : int64;
R1 : int64;
시작하다
T1 : = getTickCount; // Windows API를 계산하기 시작합니다
sleep (1000); {do ...} // 시간을 정 할 코드를 실행합니다
t2 : = getTickCount; // 종료 수 값을 가져옵니다
R1 : = T2-T1; // 타이밍 시간, 단위 밀리 초 (MS)
showmessage (inttostr (r1));
끝;
// 밀리 초 레벨 시간 정확도를 가져옵니다 (메소드 2) :
// dateUtils를 사용합니다; // 참조 dateUtils 단위
var
T1, T2 : TdateTime;
R1 : int64;
시작하다
t1 : = now (); // 시작 시간을 얻습니다
sleep (1000); {do ...} // 시간을 정 할 코드를 실행합니다
t2 : = now (); // 종료 시간을 얻습니다
r1 : = secondsbetween (t2, t1); // 타이밍 시간, 단위 초 (들)
R1 : = millisecondsbetween (t2, t1); // 타이밍 시간, 단위 밀리 초 (ms)
showmessage (inttostr (r1));
끝;
// 참고 : 위의 두 가지 방법을 테스트 한 후에는 스스로 테스트 한 후에 0.01 초의 타이밍 정확도 만 생성 할 수 있습니다.
// 시스템 수준 시간 정확도를 얻습니다.
var
C1 : int64;
T1, T2 : int64;
R1 : 이중;
시작하다
QueryPerformanceFrequency (C1); // Windows API는 계산 주파수를 반환합니다 (Intel86 : 1193180) (1 밀리 초 안에 시스템의 고성능 주파수 카운터의 진동 수를 얻습니다)
QueryPerformanCecounter (T1); // Windows API 시작 카운트 값을 얻습니다
sleep (1000); {do ...} // 시간을 정 할 코드를 실행합니다
QueryPerformanCeCounter (T2); // 종료 수 값을 얻습니다
R1 : = (T2-T1)/C1; // 타이밍 시간, 단위 초 (S)
R1 : = (T2-T1)/C1*1000; // 타이밍 시간, 단위 밀리 초 (MS)
R1 : = (T2-T1)/C1*1000000; // 타이밍 시간, 단위 마이크로 초
showmessage (floattostr (r1));
끝;