gpt4 book ai didi

c++ - : compare then change, 或立即更改哪个更快?

转载 作者:太空狗 更新时间:2023-10-29 23:41:24 25 4
gpt4 key购买 nike

假设我正在执行非常快的循环,我必须确保在每个循环结束时变量 aSOMEVALUE。什么会更快?

if (a != SOMEVALUE) a = SOMEVALUE;

或者只是立即做

a = SOMEVALUE;

它是 float/int/bool/特定语言吗?

更新:a 是原始类型,而不是类。 TRUE 比较的可能性为 50%。我知道算法是使循环变快的原因,所以我的问题也是关于编码风格的。

更新 2:感谢大家的快速回答!

最佳答案

在几乎所有情况下,只设置值会更快。

当您必须处理与其他 CPU 共享缓存行或者如果“a”位于某种特殊类型的内存中时,它可能不会更快,但是可以安全地假设分支预测错误可能是比缓存更常见的问题分享。

另外 - 越小的代码越好,不仅是为了缓存,也是为了让代码更容易理解。

如有疑问 - 个人资料。

关于c++ - : compare then change, 或立即更改哪个更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11563268/

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