ホットスポットのJITの理由について私は考えています。私は主に最新のコンパイル段階(C2コンパイラ)に興味があります。 JavaのJITは最適化のアサーションに依存していますか?その場合、コードを実行できる例があると想像できます。アサーションを有効にしてを高速に実行します。例えばJava、アサーション、JIT
、このようなコードの断片で:
static int getSumOfFirstThree(int[] array) {
assert(array.length >= 3);
return array[0] + array[1] + array[2];
}
- アサーションが有効になっているJITは、アクセスアレイ上境界チェックを排除するのに十分賢いだろうか?
- また、JITがコンパイルするネイティブコードをアサーションが実際にどのように改善するかについて(実用的なのかそうでないのか)考えることができる場合がありますか?