找回密码
 点一下
查看: 6480|回复: 17

Wait与Timer计时精度研究

[复制链接]
发表于 2006-5-9 17:36:58 | 显示全部楼层 |阅读模式
名称:[研究]Wait与Timer计时精度研究
作者:zyl910
版本:V1.0.0
日期:2006-5-9


  一直听说Timer比Wait精度高,但是具体精度是多少,没人知道。于是我做了个这个测试。

  我的电脑配置:
CPU: AMD Athlon XP 1700+(实际频率:1463 MHz (11 x 133))
内存: Kingston DDR266 256MB *2(两根)
显卡: nVIDIA GeForce2 MX/MX 400(AGP 4X,显存32MB)


  测试结果如下:
[Test]
Time: 0.00001
Wait[0]: 0.250
Wait[1]: 0.375
Wait[2]: 0.500
Wait[3]: 0.625
Wait[4]: 0.750
Wait[5]: 0.875
Wait[6]: 1.125
Wait[7]: 1.250
Wait[8]: 1.375
Wait[9]: 1.500
WaitGT[0]: 0.250
WaitGT[1]: 0.500
WaitGT[2]: 0.625
WaitGT[3]: 0.875
WaitGT[4]: 1.125
WaitGT[5]: 1.250
WaitGT[6]: 1.625
WaitGT[7]: 1.875
WaitGT[8]: 2.000
WaitGT[9]: 2.250
Timer[0]: 0.125
Timer[1]: 0.125
Timer[2]: 0.125
Timer[3]: 0.125
Timer[4]: 0.125
Timer[5]: 0.125
Timer[6]: 0.125
Timer[7]: 0.125
Timer[8]: 0.125
Timer[9]: 0.125
Timer per Second: 8824

[Test]
Time: 0.00010
Wait[0]: 0.250
Wait[1]: 0.375
Wait[2]: 0.500
Wait[3]: 0.625
Wait[4]: 0.750
Wait[5]: 0.875
Wait[6]: 1.125
Wait[7]: 1.250
Wait[8]: 1.375
Wait[9]: 1.500
WaitGT[0]: 0.250
WaitGT[1]: 0.500
WaitGT[2]: 0.625
WaitGT[3]: 0.875
WaitGT[4]: 1.125
WaitGT[5]: 1.250
WaitGT[6]: 1.625
WaitGT[7]: 1.875
WaitGT[8]: 2.000
WaitGT[9]: 2.250
Timer[0]: 0.125
Timer[1]: 0.125
Timer[2]: 0.125
Timer[3]: 0.125
Timer[4]: 0.125
Timer[5]: 0.125
Timer[6]: 0.125
Timer[7]: 0.125
Timer[8]: 0.125
Timer[9]: 0.125
Timer per Second: 8824

[Test]
Time: 0.00100
Wait[0]: 0.250
Wait[1]: 0.375
Wait[2]: 0.500
Wait[3]: 0.625
Wait[4]: 0.750
Wait[5]: 0.875
Wait[6]: 1.125
Wait[7]: 1.250
Wait[8]: 1.375
Wait[9]: 1.500
WaitGT[0]: 0.250
WaitGT[1]: 0.500
WaitGT[2]: 0.625
WaitGT[3]: 0.875
WaitGT[4]: 1.125
WaitGT[5]: 1.250
WaitGT[6]: 1.625
WaitGT[7]: 1.875
WaitGT[8]: 2.000
WaitGT[9]: 2.250
Timer[0]: 0.125
Timer[1]: 0.125
Timer[2]: 0.125
Timer[3]: 0.125
Timer[4]: 0.125
Timer[5]: 0.125
Timer[6]: 0.125
Timer[7]: 0.125
Timer[8]: 0.125
Timer[9]: 0.125
Timer per Second: 877

[Test]
Time: 0.01000
Wait[0]: 0.250
Wait[1]: 0.375
Wait[2]: 0.500
Wait[3]: 0.625
Wait[4]: 0.750
Wait[5]: 0.875
Wait[6]: 1.125
Wait[7]: 1.250
Wait[8]: 1.375
Wait[9]: 1.500
WaitGT[0]: 0.250
WaitGT[1]: 0.500
WaitGT[2]: 0.625
WaitGT[3]: 0.875
WaitGT[4]: 1.125
WaitGT[5]: 1.250
WaitGT[6]: 1.625
WaitGT[7]: 1.875
WaitGT[8]: 2.000
WaitGT[9]: 2.250
Timer[0]: 0.125
Timer[1]: 0.125
Timer[2]: 0.125
Timer[3]: 0.125
Timer[4]: 0.125
Timer[5]: 0.125
Timer[6]: 0.125
Timer[7]: 0.125
Timer[8]: 0.125
Timer[9]: 0.125
Timer per Second: 89

[Test]
Time: 0.10000
Wait[0]: 0.375
Wait[1]: 0.625
Wait[2]: 1.000
Wait[3]: 1.250
Wait[4]: 1.625
Wait[5]: 1.875
Wait[6]: 2.250
Wait[7]: 2.500
Wait[8]: 2.750
Wait[9]: 3.125
WaitGT[0]: 0.375
WaitGT[1]: 0.625
WaitGT[2]: 0.875
WaitGT[3]: 1.250
WaitGT[4]: 1.625
WaitGT[5]: 1.875
WaitGT[6]: 2.125
WaitGT[7]: 2.500
WaitGT[8]: 2.750
WaitGT[9]: 3.125
Timer[0]: 0.125
Timer[1]: 0.250
Timer[2]: 0.375
Timer[3]: 0.500
Timer[4]: 0.500
Timer[5]: 0.625
Timer[6]: 0.750
Timer[7]: 0.875
Timer[8]: 1.000
Timer[9]: 1.000
Timer per Second: 10




  可以看出:
一、Wait的精度是0.15s左右,Wait(game-time)的精度更是惨不容睹。
二、Timer的精度是0.0001s,但由于各方面原因,速度会稍微慢一点。

  Wait用于秒级的延时。对于 小于0.15s 的延时,必须得用Timer。
发表于 2006-5-9 19:28:22 | 显示全部楼层
沙发占据~
支持理论研究
回复

使用道具 举报

发表于 2006-5-9 19:56:43 | 显示全部楼层
原帖由 Red_Wolf 于 2006-5-9 19:28 发表
沙发占据~
支持理论研究

这么重要的成果不要灌水呀:Q


沙发占据~
但是还要支持理论研究支持!研究!:P:P
回复

使用道具 举报

发表于 2006-5-9 21:06:26 | 显示全部楼层
呃?弄不太懂,下来看看.
『KickedByOthers专用抗议这万恶的10字节』
『KickedByOthers代表世界水友抗议10字节』
『GA水协_KickedByOthers对10字抗议标签』
回复

使用道具 举报

发表于 2006-5-9 22:29:29 | 显示全部楼层
没看出来timer的精度..
回复

使用道具 举报

发表于 2006-5-10 02:24:42 | 显示全部楼层
好东西啊顶===========
回复

使用道具 举报

发表于 2006-5-10 02:40:51 | 显示全部楼层
原帖由 Red_Wolf 于 2006-5-9 18:19 发表
好DD~
支持理论研究~~~


同[em02][em20][em01][em13]
回复

使用道具 举报

发表于 2006-5-14 20:37:06 | 显示全部楼层
真是好东西。。。。。
我就在纳闷,用wait等待的时间怎么会那么长。。。
回复

使用道具 举报

发表于 2006-5-14 20:44:30 | 显示全部楼层
实话说,不懂。。。
回复

使用道具 举报

发表于 2006-5-14 20:48:45 | 显示全部楼层
收到,这对于一些技能很有用。
回复

使用道具 举报

发表于 2006-5-14 20:56:33 | 显示全部楼层
对制作特效,极为有用。
回复

使用道具 举报

发表于 2006-5-16 09:59:52 | 显示全部楼层
Wait主要是还要等待其他进程完毕。所以对于游戏中的BUFF控制时间要尽量用timer
回复

使用道具 举报

发表于 2006-5-16 10:31:17 | 显示全部楼层
不是,wait的最小单位是0.125,比如call TriggerSleepAction(0)也要等待0.125秒的
而Timer和触发的EveryTime的最小单位为0.0001秒
回复

使用道具 举报

发表于 2006-5-24 23:14:25 | 显示全部楼层
在联机游戏中,你wait5秒释放某技能实际上7秒后才放的情况屡见不鲜
回复

使用道具 举报

 楼主| 发表于 2006-5-25 11:55:37 | 显示全部楼层
原帖由 晨枫 于 2006-5-24 23:14 发表
在联机游戏中,你wait5秒释放某技能实际上7秒后才放的情况屡见不鲜


这是因为游戏速度是 快

为了与游戏速度同步,长时间延时应该用Wait(game-time)

当然最好还是用Timer
回复

使用道具 举报

发表于 2006-5-26 16:55:06 | 显示全部楼层
最讨厌这些用every 和timer做的技能,简直虐待我的电脑!
回复

使用道具 举报

发表于 2006-5-26 18:12:13 | 显示全部楼层
Wait用于秒级的延时。对于 小于0.15s 的延时,必须得用Timer。

我爱这句话。
回复

使用道具 举报

发表于 2006-5-27 14:04:36 | 显示全部楼层
原帖由 tkwlee 于 2006-5-26 16:55 发表
最讨厌这些用every 和timer做的技能,简直虐待我的电脑!


那要看怎么用了~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-5-2 21:07 , Processed in 0.054666 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表