gpt4 book ai didi

performance - gcc 可能不太可能使用宏

转载 作者:IT王子 更新时间:2023-10-28 23:31:45 25 4
gpt4 key购买 nike

我正在编写一段关键的代码,其逻辑大致如下

if(expression is true){
//do something with extremely low latency before the nuke blows up. This branch is entered rarely, but it is the most important case
}else{
//do unimportant thing that doesnt really matter
}

我正在考虑在表达式周围使用 likely() 宏,因此当它到达重要分支时,我会得到最小的延迟。

我的问题是,它的用法与建议的宏名称完全相反,因为我选择 unlikely 分支进行预取,即不太可能发生重要的分支,但它是发生时最关键的事情。

在性能方面这样做有明显的缺点吗?

最佳答案

是的。您通过将不太可能但必须快速的分支标记为可能的分支来欺骗编译器,希望编译器能够使其更快。

这样做有一个明显的缺点——如果你没有写一个很好的评论来解释你在做什么以及为什么,在六个月内,一些维护者(可能是你自己)几乎肯定会说,“嘿,看起来他把可能的分支放在了错误的分支上”并“修复”它。

还有一个不太可能但仍然可能的缺点,即您现在或将来使用的某些编译器版本将执行与您对可能的宏的预期不同的事情,并且这些不同的事情不会你想欺骗编译器做什么,你最终会得到这样的代码,每次通过循环,在撤消它之前,你会花费 10 万美元推测性地完成 react 器关闭的 90%。

关于performance - gcc 可能不太可能使用宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10922607/

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