我有一个DirectX游戏,在双核系统上产生2个增强线程:1个用于游戏/渲染(通常在四核CPU上分成自己的线程),以及另外1个程序生成游戏世界的线程.我相信我的音频中间件也会产生自己的线程来播放SFX和音乐.
游戏总是在CPU上运行100%,这反过来可能会导致音频系统的一些溅射.我希望通过更好地管理Generation Thread的活动来减少CPU负载.虽然有时我需要它全速运行,但有时候(当玩家没有移动太多时)它只是不断更新而不是真的做了很多.
是否可以/建议手动管理线程的活动程度?如果是这样,我可以用什么策略来做到这一点?我一直看到人们说睡眠()功能并不是真的推荐,但我真的不知道还有什么可做的.
或者,我是通过尝试从线程管理中挤出循环来咆哮错误的树,我会通过传统的分析/优化更好地服务吗?