游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1599|回复: 4

怎样实现多处理器下的精确计时?

[复制链接]

14

主题

37

帖子

37

积分

注册会员

Rank: 2

积分
37
发表于 2008-3-31 13:46:00 | 显示全部楼层 |阅读模式
QueryPerformanceCounter() 不问要哪个处理器的计数,直接返回一个。多个处理器的计数可以不同。
又,一个进程或者线程可以和数个处理器关联,所以在程序内,执行同一个QueryPerformanceCounter()的处理器可以有多个。
所以结果是,如果一个进程/线程和多个处理器关联,那么同一个QueryPerformanceCounter()调用返回的结果可能不是基于同一个处理器的,结果可能出现偏差。

现在想到的方法只有用SetThreadAffinityMask()函数把线程和单一处理器关联,不过这样的话可能对单个线程的处理能力有所影响。
多个线程的同步计时还没办法解决,因为如果把一个进程和单一处理器关联,就没办法利用多个处理器了,程序速度会下降很多。

86

主题

2251

帖子

2386

积分

金牌会员

Rank: 6Rank: 6

积分
2386
QQ
发表于 2008-3-31 14:02:00 | 显示全部楼层

Re:怎样实现多处理器下的精确计时?

同问~

0

主题

172

帖子

176

积分

注册会员

Rank: 2

积分
176
发表于 2008-3-31 19:51:00 | 显示全部楼层

Re:怎样实现多处理器下的精确计时?

也同有此问题,不过突然想到一个说法

windows本就不是实时系统,要在上面生做个实时出来,实在是勉为其难。

PS:模糊记得Intel有个例子,具体记不清了

14

主题

37

帖子

37

积分

注册会员

Rank: 2

积分
37
 楼主| 发表于 2008-4-2 14:11:00 | 显示全部楼层

Re:怎样实现多处理器下的精确计时?

感谢,看来只有这样了。

7

主题

438

帖子

438

积分

中级会员

Rank: 3Rank: 3

积分
438
发表于 2008-4-3 13:31:00 | 显示全部楼层

Re:怎样实现多处理器下的精确计时?

直接抄dxut里面CTimer就好了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-20 17:26

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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