如何在没有值得计算的事情发生时减少XNA游戏的CPU使用率



一个新的XNA游戏项目应用程序在其窗口处于活动状态时消耗相当多的CPU百分比。在我的台式电脑上,它大约是双核处理器单核的30%。当窗口失去焦点时,游戏进入空闲模式并消耗约1%的CPU。

在我最近使用XNA制作的图像查看器应用程序中,当没有图像操作正在进行时重新绘制帧并没有多大意义,所以我使用SuppressDraw()方法,顾名思义,它抑制了绘制下一帧的花费资源,而是显示最后绘制的帧。但是,仍然存在一个问题,即应用程序总是为一个非常简单的输入更新而浪费CPU。

如何在不需要太多CPU的情况下减少XNA应用程序的CPU使用?

引自这个问题

根据XBox Live独立游戏论坛上的讨论,显然在某些处理器(和os)上,当Game的默认值为XNA时,XNA在一个核心上占用了100%的CPU时间。使用IsFixedTimeStep

一个常见的解决方案(对我来说也是有效的)是在你的游戏构造函数中添加以下内容:IsFixedTimeStep = false;

更多细节请点击此处

最新更新