慢!慢!慢!

幻爷 2003-07-04 02:20:11
while((GetTickCount()-START_TIME)<3){}


这一句在winxp下居然要16毫秒!!!!我无语言了?

CPU P4 2.4
显卡 镭风9100

谁来帮我解释一下这到底为什么这条语句会这么慢!!

...全文
26 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
BlueSky2008 2003-07-05
  • 打赏
  • 举报
回复
真是笑死我了,happy__888:看来你答的题太多,现在答题都不用看题目了:)
while((GetTickCount()-START_TIME)<3){}
这句是循环语句哎。
要是GetTickCount() = 10,003,START_TIME = 3,610,000,这句还能执行一个小时呢。
寻开心 2003-07-04
  • 打赏
  • 举报
回复
这个函数在 MMSYSTEM.H当中定义,实现部分包含在WINMM.LIB当中,所以是需要得。
有的程序不加可能是这两个东西被其它的头文件包含了。
先不加,编译看看过不过,过不去再加上就可以了。
llrock 2003-07-04
  • 打赏
  • 举报
回复
while((GetTickCount()-START_TIME)<3){}
==================〉〉〉〉
一般情况下这样效率会搞些
int a;
while(TRUE)
{
a=GetTickCount()-START_TIME;
if(a<3)break;
...
}
tomb4 2003-07-04
  • 打赏
  • 举报
回复
timeGetTime是一定要加WINMM.LIB吗?为什么看有的程序不用加?也没有INCLUDE MMSYSTEM.H?
寻开心 2003-07-04
  • 打赏
  • 举报
回复
还可以使用:DWORD timeGetTime(VOID)
Include : MMSYSTEM.H
Library : WINMM.LIB
这个函数可以精确到1毫秒
寻开心 2003-07-04
  • 打赏
  • 举报
回复
这个毫秒数是不准确的,是根据操作系统相关的,不是你机器硬件的问题,要更精确的时间就使用其它的函数,QueryPerformanceCounter等
看看GetTickCount函数的说明,
Remarks
The following table describes the resolution of the system timer.

System Resolution
Windows NT 3.5 and later The system timer runs at approximately 10ms.
Windows NT 3.1 The system timer runs at approximately 16ms.
Windows 95 and later The system timer runs at approximately 55ms.

这个精度就是系统的最小轮训周期了。

8,304

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧