打印本文 打印本文 关闭窗口 关闭窗口
Delphi中三种延时方法及其定时精度分析
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1946  更新时间:2009/4/23 18:27:02  文章录入:mintao  责任编辑:mintao
lf)  do 
       begin 
           Start; 
           //  Place  code  to  measure  here 
           Sleep(1000); 
           //  Place  code  to  measure  here 
           Edit1.Text:=Read; 
           Free; 
       end; 
end; 
 
end.

二、三种方法的精度比较

  为了比较,采用以上3种方法,分别设置延时时间为1ms、2ms、5ms、10ms、20ms、50ms、100ms、200ms、500ms、1000ms,循环次数为5次,得到实际的延时时间。

1)TTtimer控件

                       实际延时时间(ms)
1ms: 8.012   21.551  6.875   21.647  9.809
2ms: 9.957   20.675  14.671  11.903  20.551
5ms: 9.952   20.605  9.924   20.705  12.682
10ms:14.852  9.96    21.547  9.82    20.634
20ms:27.512  34.291  26.427  31.244  30.398
50ms:61.196  61.307  64.027  62.048  63.059
100ms:102.495 108.408 112.318 110.322 102.531
200ms:193.955 202.135 207.016 205.082 202.194
500ms:496.659 500.534 503.398 495.551 500.394
1000ms:999.699 1003.576 993.698 1004.443 995.625

2)Sleep函数

1ms: 1.895   1.895   1.896   1.897   1.898
2ms: 2.868   2.874   2.852   2.872   2.869
5ms: 5.8     5.797   5.79    5.79    5.791
10ms:10.675  10.683  10.611  10.669  10.67
20ms:20.404  20.434  20.447  20.477  20.368
50ms:50.67   50.691  50.69   50.682  50.671
100ms:100.515 100.469 100.484 100.481 100.484
200ms:200.101 200.126 199.892 200.066 200.108
500ms:499.961 499.961 499.958 499.961 499.96
1000ms:1000.034 1000.04 1000.03 1000.018 1000.029

3)GetTickCount函数

1ms: 15.54   15.596  15.527  15.566  15.838
2ms: 15.561  15.563  15.603  15.477  15.571
5ms: 15.519  15.549  15.569  15.666  15.394
10ms:15.558  15.561  15.522  15.568  15.518
20ms:31.186  31.137  31.17   31.17   31.19
50ms:62.445  62.4    63.893  60.88   62.404
100ms:109.276 109.298 109.273 109.28  109.28
200ms:203.027 203.084 203.021 203.027 203.046
500ms:499.959 499.961 499.963 499.967 499.965
1000ms:1000.023 1000.022 1000.026 1000.029 1000.021


  可见,相对而言,Sleep的精度最高,尤其是在10ms以内的延时,只有sleep函数才能够做到。TTimer控件的定时精度最差,而且稳定性不好,波动很大。GetTickCount函数所能实现的最短延时为15ms左右,稳定性相对TTimer要好一些。

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口