如何解决如果有完美的模式,我是否应该防止分支,所以预测应该是好的?
我的问题与 this question 非常相关,但在阅读该问题之后,我仍然不清楚一些问题并且非常好 answer。
据我所知,执行代码的处理器进行分支预测,以便它已经对一个分支进行处理,希望该分支成为需要执行的分支。如果它是错误的,它将不得不重新滚动一些需要时间的指令。 据我了解,预测是基于过去的模式。
所以现在我的问题是:如果我确定知道 if 语句将评估为什么模式,那么在编译时做出决定的速度是否一样快?
更具体地说,我有一个模板函数,我可以做模板特化,以便在编译时做出决定,但在我看来,如果我在我的内部使用 std:is_same
功能。但是速度对我的应用程序来说也非常重要,所以如果速度可能会受到影响,我仍然宁愿选择模板专业化,尽管在我的特定情况下这会降低可读性/可维护性。 (我也可以使模板专业化更具可读性,但它是一个很大的代码(不是我完全编写的),我宁愿不浏览整个代码并更改很多东西以使其再次变得更好。是的,基本上我很懒。 )
(我认为这个问题可以没有 MWE,但如果没有,我会添加一些)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。