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

问题描述

我的问题与 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.JdbcOdbc...