gpt4 book ai didi

c++ - 同一类对象之间的分支预测

转载 作者:行者123 更新时间:2023-12-02 17:33:44 26 4
gpt4 key购买 nike

我正在优化一个程序,并试图避免分支错误预测。我有一个类的两个对象。在类的主要函数中,有几个 if 分支。每个对象在每个分支上都采取不同的方向,并且它们各自依次运行该函数。我的问题:

由于它们是同一类的成员,因此共享该函数,它们是否也共享相同的分支预测?本质上,我是不是让系统变得 TFTFTTF...

或者,由于它们是自己的对象,因此它们有自己的分支预测,因此保持一致的预测(TTTTTTT ...和 ​​FFFFFFFF ...)

最佳答案

是的,该方法在类的实例之间共享。

这也意味着预测是共享的。

但是,分支预测不仅仅限于“最后”时间。处理器将记住一些最后的结果并识别“简单”(循环)模式。因此,如果您不断地在两个对象之间交换并且模式最终为 TFTPFTTFFF,那么处理器将正确猜测下一个结果将是 T

但是,从语义的角度来看,您是否考虑过使用基类和两个不同的派生类(+通常的虚拟机制)?

关于c++ - 同一类对象之间的分支预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7982196/

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