Embarcadero Delphi                
            시간 간격 측정
        
        
            
    수색…
Windows API GetTickCount 사용
 Windows API GetTickCount 함수는 시스템 (컴퓨터)이 시작된 이후의 시간 (밀리 초)을 반환합니다. 가장 간단한 예제는 다음과 같습니다. 
var
  Start, Stop, ElapsedMilliseconds: cardinal;
begin
  Start := GetTickCount;
  // do something that requires measurement
  Stop := GetTickCount;
  ElapsedMillseconds := Stop - Start;
end;
  GetTickCount 는 32 비트 DWORD 반환하므로 매 49.7 일마다 래핑됩니다. 줄 바꾸기를 피하려면 GetTickCount64 (Windows Vista부터 사용 가능) 또는 특수 루틴을 사용하여 틱 차이를 계산할 수 있습니다. 
function TickDiff(StartTick, EndTick: DWORD): DWORD;
begin
  if EndTick >= StartTick
    then Result := EndTick - StartTick
    else Result := High(NativeUInt) - StartTick + EndTick;
end;
function TicksSince(Tick: DWORD): DWORD;
begin
  Result := TickDiff(Tick, GetTickCount);
end;
  GetTickCount 의 두 번 연속 호출 간격이 49.7 일 경계를 초과하면 이러한 루틴은 잘못된 결과를 반환합니다. 
밀리 초를 초로 변환하는 예 :
var
  Start, Stop, ElapsedMilliseconds: cardinal;
begin
  Start := GetTickCount;
  sleep(4000); // sleep for 4 seconds
  Stop := GetTickCount;
  ElapsedMillseconds := Stop - Start;
  ShowMessage('Total Seconds: '
      +IntToStr(round(ElapsedMilliseconds/SysUtils.MSecsPerSec))); // 4 seconds
end;
        TStopwatch 레코드 사용하기
Delphi의 최신 버전은 시간 간격 측정을위한 TStopwatch 레코드와 함께 제공됩니다. 사용 예 :
uses
  System.Diagnostics;
var
  StopWatch: TStopwatch;
  ElapsedMillseconds: Int64;
begin
  StopWatch := TStopwatch.StartNew;
  // do something that requires measurement
  ElapsedMillseconds := StopWatch.ElapsedMilliseconds;
end;
    
    
    
    
    Modified text is an extract of the original Stack Overflow Documentation
        아래 라이선스 CC BY-SA 3.0
        와 제휴하지 않음 Stack Overflow