微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果有完美的模式,我是否应该防止分支,所以预测应该是好的?

如何解决如果有完美的模式,我是否应该防止分支,所以预测应该是好的?

我的问题与 this question 非常相关,但在阅读该问题之后,我仍然不清楚一些问题并且非常好 answer

据我所知,执行代码的处理器进行分支预测,以便它已经对一个分支进行处理,希望该分支成为需要执行的分支。如果它是错误的,它将不得不重新滚动一些需要时间的指令。 据我了解,预测是基于过去的模式。

所以现在我的问题是:如果我确定知道 if 语句将评估为什么模式,那么在编译时做出决定的速度是否一样快?

更具体地说,我有一个模板函数,我可以做模板特化,以便在编译时做出决定,但在我看来,如果我在我的内部使用 std:is_same功能。但是速度对我的应用程序来说也非常重要,所以如果速度可能会受到影响,我仍然宁愿选择模板专业化,尽管在我的特定情况下这会降低可读性/可维护性。 (我也可以使模板专业化更具可读性,但它是一个很大的代码(不是我完全编写的),我宁愿不浏览整个代码并更改很多东西以使其再次变得更好。是的,基本上我很懒。 )

(我认为这个问题可以没有 MWE,但如果没有,我会添加一些)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?