【问题标题】:Low consuming loop in C [duplicate]C中的低消耗循环[重复]
【发布时间】:2015-09-14 11:14:48
【问题描述】:

我开始使用 SDL2、窗口创建和键盘事件来使用 C 语言的用户界面。

我意识到我的应用正在消耗大量 CPU (> 95%),可能是因为我有一个 while 循环等待事件的到来。

其他应用程序如何设法在不使用所有 CPU 的情况下仍然能够响应事件?

【问题讨论】:

  • 也许您引用的其他匿名应用程序不会连续循环,而是使用计时器或其他一些事件处理进行绘图?也许他们以特定的帧速率进行绘制,并且在两者之间进行一些休眠?
  • 好吧,不等待事件是一个好计划。
  • 如果我不等待事件,我应该如何检测它? @MartinJames

标签: c events while-loop cpu-usage sdl-2


【解决方案1】:

@artonge,

我遇到了同样的问题。我在循环中写了一个 Sleep(..) 并且资源利用率确实下降了。

Sleep(int milliSeconds);

【讨论】:

  • 一开始什么都不做,增加延迟,会降低 CPU 利用率,是的。然而,这种设计给 Sleep() 带来了坏名声:(
  • 我认为睡眠会增加很多延迟,但事实并非如此,谢谢!
猜你喜欢
  • 2012-02-29
  • 2016-10-15
  • 2012-07-20
  • 2021-08-09
  • 1970-01-01
  • 1970-01-01
  • 2015-11-22
  • 2012-09-25
  • 1970-01-01
相关资源
最近更新 更多