Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否有可能帮助分支预测?_Java_C++_C_Branch Prediction - Fatal编程技术网

Java 是否有可能帮助分支预测?

Java 是否有可能帮助分支预测?,java,c++,c,branch-prediction,Java,C++,C,Branch Prediction,您是否可以有意识地以特定的方式编写代码,以便分支预测器可以选择大多数情况下都会出现的选项。例如,错误检查是否加载了资源。如果这是可能的,您如何利用这一优势?如果您使用的是GCC,您可以使用宏“可能()/不可能()”: 理论上,是的。有效地说,不。你不会真的得到任何好处,你自己试试吧 按照现代硬件的工作方式,无论你做什么,你的CPU仍然会磨掉所有的分支。但这并不重要,因为他们会同时做 要尝试自己做这件事,您需要使用汇编语言。上面显示的编译器提示不会有太多作用。为什么要用这么多语言标记?C的答案将不

您是否可以有意识地以特定的方式编写代码,以便分支预测器可以选择大多数情况下都会出现的选项。例如,错误检查是否加载了资源。如果这是可能的,您如何利用这一优势?

如果您使用的是GCC,您可以使用宏“可能()/不可能()”:


理论上,是的。有效地说,不。你不会真的得到任何好处,你自己试试吧

按照现代硬件的工作方式,无论你做什么,你的CPU仍然会磨掉所有的分支。但这并不重要,因为他们会同时做


要尝试自己做这件事,您需要使用汇编语言。上面显示的编译器提示不会有太多作用。

为什么要用这么多语言标记?C的答案将不同于Java的答案。答案可能也依赖于硬件吗?这是如何利用的?分支预测不是一个bug…@ScottHunter“利用”在IT安全之外有一个含义,即“利用某些东西为您带来好处”。@immibis:我指的是“利用”标签,它与您所指的含义不同。这更像是一个评论,而不是一个答案。你能解释一下你如何“理论上”做到这一点,而不是仅仅说“是”。我没有说“是”,我说了“否”。你如何利用这一点为自己带来好处