खोज…


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 रिकॉर्ड का उपयोग करना

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