使用相同的代码,我有:
5-10% 的 CPU 使用率IsFixedTimeStep = true
和TargetElapsedTime = TimeSpan.FromSeconds(1 / 60f)
50-60% CPU 使用率IsFixedTimeStep = true
和TargetElapsedTime = TimeSpan.FromSeconds(1 / 30f)
通过降低帧速率,人们应该会期望更少的 CPU 使用率。我尝试过不同的代码,结果相似。有人知道原因吗?
使用相同的代码,我有:
5-10% 的 CPU 使用率IsFixedTimeStep = true
和TargetElapsedTime = TimeSpan.FromSeconds(1 / 60f)
50-60% CPU 使用率IsFixedTimeStep = true
和TargetElapsedTime = TimeSpan.FromSeconds(1 / 30f)
通过降低帧速率,人们应该会期望更少的 CPU 使用率。我尝试过不同的代码,结果相似。有人知道原因吗?
如果我不得不猜测(我必须猜测,因为您提供的信息很少),我会说这是 GPU 和 CPU 之间的交互。
看看这篇博文。
基本上,在 60 FPS 时,您可能受到 GPU 限制。CPU 处于空闲状态,等待 GPU 在开始绘制另一帧之前绘制一帧。您可能正在丢帧。
在 30 FPS 时,GPU 能够跟上,因此 CPU 必须更频繁地发送帧。
但是,这只是一个猜测。您必须检测您的代码以正确检查这些内容。