是否有可能帮助分支预测?
Is it possible to aid branch prediction?
您能否有意以特定方式编写代码,以便分支预测器会选择大多数情况下的选项。例如错误检查资源是否被加载。如果这是可能的,你如何利用它来发挥你的优势?
如果您使用的是 GCC,则可以使用宏“likely()/unlikely()”:
likely()/unlikely() macros in the Linux kernel - how do they work? What's their benefit?
理论上是的。实际上说不。你不会真正得到任何好处,你自己试试吧。
随着现代硬件的工作方式,无论您做什么,您的 CPU 仍然会磨出所有分支。但这并不重要,因为他们会同时进行。
要尝试自己做,您需要使用汇编语言。上面显示的编译器提示不会做太多。
您能否有意以特定方式编写代码,以便分支预测器会选择大多数情况下的选项。例如错误检查资源是否被加载。如果这是可能的,你如何利用它来发挥你的优势?
如果您使用的是 GCC,则可以使用宏“likely()/unlikely()”:
likely()/unlikely() macros in the Linux kernel - how do they work? What's their benefit?
理论上是的。实际上说不。你不会真正得到任何好处,你自己试试吧。
随着现代硬件的工作方式,无论您做什么,您的 CPU 仍然会磨出所有分支。但这并不重要,因为他们会同时进行。
要尝试自己做,您需要使用汇编语言。上面显示的编译器提示不会做太多。