游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2953|回复: 6

不同的计时器有哪些区别呢?

[复制链接]

125

主题

364

帖子

396

积分

中级会员

Rank: 3Rank: 3

积分
396
QQ
发表于 2007-1-26 13:17:00 | 显示全部楼层 |阅读模式
计算单帧时间和设置定时器
1. SetTimer
2. timeGetTime
3. GetTickCount
4. QueryPerformanceCounter/Frequency


我只知道这四种方法,

我想问的是, 用这四个函数分别做四个计时器,
针对不同的需求, 怎么选择?

希望 有经验的大侠能举个例子。谢谢。

需求不高我用 timeGetTime就可以吧。

0

主题

172

帖子

176

积分

注册会员

Rank: 2

积分
176
发表于 2007-1-26 14:52:00 | 显示全部楼层

Re:不同的计时器有哪些区别呢?

SetTimer精度最低,
timeGetTime和GetTickCount精度差不多,中等,用__int32计数,大约49.71天时会溢出清0。
QueryPerformanceCounter/Frequency 精度最高,但和CPU相关,多CPU下,有小误差(除非指定使用该计时器的线程只能用其中一个CPU核心运行),这个用的__int64计数。

精度低,计时不十分准确,但是稳定性好,对同一操作计时,每次所得时间基本一致。

精度越高,计时越准确,稳定性越差(基本对同一操作计时,每次所得时间大多不同,而且还可能牵扯到线程切换所耗费的时间等。。。)

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2007-1-26 16:57:00 | 显示全部楼层

Re:不同的计时器有哪些区别呢?

1. SetTimer(基本不用在游戏程序中)

2. timeGetTime(在WINDOWS98里能达到 1ms的精度。NT大概15ms,所以也很少用。)
3. GetTickCount(与timeGetTime一样。)

4. QueryPerformanceCounter/Frequency(最理想的计时方式!)

12

主题

217

帖子

220

积分

中级会员

Rank: 3Rank: 3

积分
220
发表于 2007-1-26 17:44:00 | 显示全部楼层

Re:不同的计时器有哪些区别呢?

SetTimer基于消息??樱?形?n??WM_TIMER消息优先?比?低,??l生?G???象。
硬件晶振?Q定了?r?精度只有55ms,不知1~15ms精度?哪睦锏弥??x??巧洗蟾绨l??相?文?n?接?小第?W?一下。

35

主题

1735

帖子

1739

积分

金牌会员

Rank: 6Rank: 6

积分
1739
QQ
发表于 2007-1-26 18:47:00 | 显示全部楼层

Re:不同的计时器有哪些区别呢?

顶啦

125

主题

364

帖子

396

积分

中级会员

Rank: 3Rank: 3

积分
396
QQ
 楼主| 发表于 2007-1-26 19:11:00 | 显示全部楼层

Re:不同的计时器有哪些区别呢?

非常感谢, 消化使用中..........................

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2007-1-26 23:25:00 | 显示全部楼层

Re: Re:不同的计时器有哪些区别呢?

moriya: Re:不同的计时器有哪些区别呢?
硬件晶振?Q定了?r?精度只有55ms,不知1~15ms精度?哪睦锏弥??x??巧洗蟾绨l??相?文?n?接?小第?W?一下。

我自己用程序测出来的。
如果时间间隔<15ms,timeGetTime得到的两次数值是一样的。
有时是15ms,有时是16ms。
WINDOWS98里面就没有这个毛病。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 08:06

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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