gpt4 book ai didi

c++ - 转到优化重构

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

我有一个“MyFunction”,我一直在纠结是否应该或不应该在它上面以及在类似(希望很少)的情况下使用 goto。所以我正在努力为这种情况养成一个坚定的习惯。做或不做。

int MyFunction()
{ if (likely_condition)
{
condition_met:
// ...
return result;
}
else /*unlikely failure*/
{ // meet condition
goto condition_met;
}
}

我打算在可能的情况下从失败的条件跳转指令中获益。但是,如果没有这样的东西,我不明白编译器如何知道要简化哪个案例概率。

  1. 它工作正常吗?
  2. 这些好处值得混淆吗?
  3. 是否有更好的(更简洁、更结构化、更具表现力)方法来实现这种优化?

最佳答案

在我看来,您尝试进行的优化大多已过时。大多数现代处理器都内置了分支预测,因此(假设它的使用足以引起注意)它们会跟踪一个分支被采用的频率,并根据其过去的被采用模式预测该分支是否可能被采用.在这种情况下,速度主要取决于预测的准确程度,而不是预测是采取还是不采取。

因此,您最好使用更简单的代码:

int MyFunction() {   
if (!likely_condition) {
meet_condition();
}
// ...
return result;
}

关于c++ - 转到优化重构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13164195/

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