游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2460|回复: 9

关于精确获取时间间隔

[复制链接]

13

主题

153

帖子

153

积分

注册会员

Rank: 2

积分
153
QQ
发表于 2005-3-28 14:32:00 | 显示全部楼层 |阅读模式
附件中的例子是袁峰大侠《Windows图形编程》中的例子,里面有一段汇编代码可以精确获取时间间隔。(总算对necro兄有个交待,呵呵)

那段传说中的代码是这样滴...
__int64 MyQueryCounter(void)
{
    _asm    _emit 0x0F
    _asm    _emit 0x31
}

sf_200532814329.rar

3.4 KB, 下载次数:

6

主题

444

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
发表于 2005-3-28 15:21:00 | 显示全部楼层

Re:关于精确获取时间间隔

在Vc6和以后就应该直接用
__asm  RDTSC
不必要用_emit加Opcode的方式

13

主题

153

帖子

153

积分

注册会员

Rank: 2

积分
153
QQ
 楼主| 发表于 2005-3-28 16:46:00 | 显示全部楼层

Re: Re:关于精确获取时间间隔

hourousha: Re:关于精确获取时间间隔

在Vc6和以后就应该直接用
__asm  RDTSC

说实话这段代码我不懂,只知道拿来用... [em10]

1

主题

11

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2005-3-28 16:46:00 | 显示全部楼层

Re:关于精确获取时间间隔

高人给说说怎么不用 GetTickCount 和 timeGetTime  阿?

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2005-3-28 17:19:00 | 显示全部楼层

Re:关于精确获取时间间隔

时间精度有限。

不过我在intel的三卷本上没找到那两个机器码对应的助记符……莫非是隐藏指令?

6

主题

444

帖子

457

积分

中级会员

Rank: 3Rank: 3

积分
457
发表于 2005-3-28 19:06:00 | 显示全部楼层

Re:关于精确获取时间间隔

那个就是RDTSC的Opcode

28

主题

685

帖子

703

积分

高级会员

Rank: 4

积分
703
发表于 2005-3-28 19:33:00 | 显示全部楼层

应该是从P2的机器就可以开始使用他了吧,不过在多处理

程序运行时间还可以,游戏里一般不会用这个的,游戏里直接用gettickcount足够了。这段汇编大概是取得CPU时钟跑了多少圈的,在其他一些CPU里也有相应的汇编函数的存在。

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2005-3-28 21:02:00 | 显示全部楼层

Re:关于精确获取时间间隔

RDTSC就是它……找不到它的名字哈

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2005-3-28 21:07:00 | 显示全部楼层

Re:关于精确获取时间间隔

还是习惯QueryPerformance*系列了~ :D
opcode记起来确实痛苦

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2005-3-28 21:16:00 | 显示全部楼层

Re:关于精确获取时间间隔

顺便PS:下了一个新的手册~找到了 :P
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-25 00:57

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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