タイトルとして:JVMにランタイムブランチ予測がありますか?もしそうなら、分岐結果をヒントするためのJavaコードの方法はありますか?
私はいくつかのCコンパイラ(GCCなど)では、予想される分岐予測結果についてコンパイラにヒントを与えることができることを覚えています。 JVMにはそのような機能がありますか?
ありがとうございました!
タイトルとして:JVMにランタイムブランチ予測がありますか?もしそうなら、分岐結果をヒントするためのJavaコードの方法はありますか?
私はいくつかのCコンパイラ(GCCなど)では、予想される分岐予測結果についてコンパイラにヒントを与えることができることを覚えています。 JVMにはそのような機能がありますか?
ありがとうございました!
私にエスケープされた新しい注釈がない限り、いいえ。
一方、このような機能が非常に有用であることは明らかではありません。 C/C++などの言語とは異なり、ソースコードのレベルでの「予測」は必ずしも最良の戦略ではないことを覚えておいてください。実際に実行されているコードは実際に実行中は謎ではないため、JVM潜在的にクリティカルな動作を監視し、必要に応じてその測定値に従ってコードのセクションを再コンパイルすることができます。
この投稿は面白いですし、Javaの分岐予測が失敗した場合は含まれています。私は、彼らがソース言語でなければならないであろうと、ヒントについて同意し、そうでない
Why is it faster to process a sorted array than an unsorted array?
Neilの答えを強化するためには、ほとんどの現代のJVMがブランチの動作を監視し、CPUがより簡単に予測できるように支店を設定しようとしています。 –