gpt4 book ai didi

c++ - 如果 CPU 使用率不是 100%,鼠标坐标就会滞后——真的很奇怪!

转载 作者:太空宇宙 更新时间:2023-11-04 12:26:26 24 4
gpt4 key购买 nike

当我让我的程序只使用 0-2% 的 cpu(删除了一些 CPU 密集型 opengl 函数)时,我的鼠标坐标开始滞后!当我使用 100% CPU(启用 opengl 功能时)时,我得到了漂亮而平滑的鼠标坐标,请注意 opengl 功能对我的鼠标坐标没有任何影响。看下图,我使用鼠标坐标记录了我的旋转函数值:

这是 100% 的 CPU 使用率(看起来应该如此): no lag http://img15.imageshack.us/img15/1304/mousecursorsmoothcoords.png

-

这是 2% 的 CPU 使用率: lag http://img5.imageshack.us/img5/5514/mousecursorlaggedcoords.png

这真是个恼人的问题,因为我使用鼠标光标位置来改变旋转角度,而在上图的情况下,旋转看起来真的很滞后。

我也许可以进行自己的插值或其他操作,但我想知道是什么原因造成的以及如何解决。

我使用 WM_MOUSEMOVE 消息获取鼠标坐标,我还尝试在我的旋转代码之前的每一帧上使用 GetCursorPos(),但没有区别。

编辑:我注意到 CPU 使用率不一定要达到 100% 才能变得流畅,但 CPU 只需要被“唤醒”,然后即使 CPU 使用率很低也能保持流畅。

最佳答案

您的第二张图似乎是“捆绑”更新。 Y 轴上的跳跃似乎在 X 轴上处于固定频率。

推测:

  • 也许节能是将您的 CPU 踢进/踢出较低的电源状态。这是一台笔记本电脑,还是在 Windows/BIOS 中启用了 CPU 节能(我不确定设置在哪里)?
  • 正如 GMan 在他的评论中所建议的,这可能与您的应用获得的时间片数量有关
  • 某种 sleep /定时器功能正在回归到较低的分辨率。一个例子是 timeGetTime() 和 queryPerformanceCounter() 之间的区别: http://www.geisswerks.com/ryan/FAQS/timing.html

关于c++ - 如果 CPU 使用率不是 100%,鼠标坐标就会滞后——真的很奇怪!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2211665/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com