一个新的XNA游戏项目应用程序在其窗口处于活动状态时消耗相当多的CPU百分比。在我的台式电脑上,它大约是双核处理器单核的30%。当窗口失去焦点时,游戏进入空闲模式并消耗约1%的CPU。
在我最近使用XNA制作的图像查看器应用程序中,当没有图像操作正在进行时重新绘制帧并没有多大意义,所以我使用SuppressDraw()
方法,顾名思义,它抑制了绘制下一帧的花费资源,而是显示最后绘制的帧。但是,仍然存在一个问题,即应用程序总是为一个非常简单的输入更新而浪费CPU。
如何在不需要太多CPU的情况下减少XNA应用程序的CPU使用?
引自这个问题
根据XBox Live独立游戏论坛上的讨论,显然在某些处理器(和os)上,当Game的默认值为XNA时,XNA在一个核心上占用了100%的CPU时间。使用IsFixedTimeStep
一个常见的解决方案(对我来说也是有效的)是在你的游戏构造函数中添加以下内容:
IsFixedTimeStep = false;
更多细节请点击此处