時間:2019-08-24 12:13:21 作者:Bill 瀏覽量:55
Delphi高精度計時方法
核心提示:DELPHI高精度計時方法,一下代碼分享個大家。
//取毫秒級時間精度(方法一):
var
t1,t2:int64;
r1:int64;
begin
t1:=GetTickCount;//獲取開始計數(shù) WINDOWS API
sleep(1000);{do...}//執(zhí)行要計時的代碼
t2:=GetTickCount;//獲取結(jié)束計數(shù)值
r1:=t2-t1;//取得計時時間,Y\`國4~絡(}.u_%t"hV單位毫秒(ms)
showmessage(inttostr(r1));
end;
Delphi高精度計時方法圖一
//取毫秒級時間精度(方法二):
//use DateUtils;//引用DateUtils單位
var
t1,t2:tdatetime;
r1:int64;
begin
t1:=now();//獲取開始計時時間
sleep(1000);{do...}//執(zhí)行要計時的代碼
t2:=now();//獲取結(jié)束計時時間
r1:=SecondsBetween(t2,t1);//取得計時時間,D6k=+W的TsoUbP育_II單位秒(s)
r1:=MilliSecondsBetween(t2,t1);//取得計時時間,
fTVGgU8E36
單位毫秒(ms)
showmessage(inttostr(r1));
end;
//注:以上兩種方式經(jīng)本人測試好像只能產(chǎn)生0.01秒的計時精度
//取系統(tǒng)級時間精度:
var
c1:int64;
t1,t2:int64;
r1:double;
begin
Delphi高精度計時方法圖二
QueryPerformanceFrequency(c1);//WINDOWS API 返回計數(shù)頻率(Intel86:1193180)(獲得系統(tǒng)的高性能頻率計數(shù)器在一毫秒內(nèi)的震動次數(shù))
QueryPerformanceCounter(t1);//WINDOWS API 獲取開始計數(shù)值
sleep(1000);{do...}//執(zhí)行要計時的代碼
QueryPerformanceCounter(t2);//獲取結(jié)束計數(shù)值
r1:=(t2-t1)/c1;//取得計時時間,
L`:(Y\O件}\^k(育*軟{Ux
j5^國GZ,)中1a6t."1)Ti
x@\t)ac提W教
YjTt]$1UCqS'E)網(wǎng)7g單位秒(s)
r1:=(t2-t1)/c1*1000;//取得計時時間,單位毫秒(ms)
r1:=(t2-t1)/c1*1000000;//取得計時時間,單位微秒
showmessage(floattostr(r1));
end;
Delphi高精度計時方法圖三