gpt4 book ai didi

c++ - 在紧密循环中,单个 'if' 语句可以产生多少影响(时间)?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:12:04 26 4
gpt4 key购买 nike

我正在使用 C++ 开发一个应用程序,它使用一个紧密循环来遍历我们 FSM 中的状态.现在,由于循环紧密,它使用了 100% 的 CPU,我们的客户不喜欢这样。我想尝试在紧密循环中放置一个 sleep(1) 来放松它,但我们担心这会让我们的大客户(他们的状态变化很大)在状态之间睡得太久迅速地!)。我正在考虑尝试这样的事情:

if(smallcustomer)
{
sleep(1);
}

smallcustomer 将在程序启动时在其他地方定义。那个“如果”语句是否会像 sleep 一样减慢速度,并破坏它自己的目的?

最佳答案

你的意思是 FSM 实际上不应该 需要 100% 的 CPU,这让我假设你花了很多时间除了检查是否需要移动之外什么都不做是否进入下一个状态。你说你担心为大客户睡“太久”,这意味着你担心会错过一些事件:队列填充、鼠标单击、数据包被接收、磁盘 I/O 完成、 key 被删除按下,随便。您应该重构以异步触发该事件(或多个事件),而不是在循环中无所事事地占用 CPU。

关于c++ - 在紧密循环中,单个 'if' 语句可以产生多少影响(时间)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4318796/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com