-1

以下は Java バイトコードです。

0: iconst_1
1: istore_1
2: iload_1
3: ...

私はそれを最適化することができます

0: iconst_1
1: ...

しかし、これは常に安全なのか、それともいつこの最適化が安全であることを確認できるのでしょうか?

4

2 に答える 2

2

メソッド コードのどこかに別の命令が存在する場合、この最適化は安全ではありません。iload_1

さらに重要なことに、この手動による最適化には意味がありません。JIT コンパイラーは、過剰なデータ割り当て自体を簡単に一掃するため、元のコードと「最適化された」コードは、コンパイル後に同じマシン コードを生成します。

于 2012-10-31T09:26:16.300 に答える
1

JIT は、コンパイラによって生成されたセット パターンを探し、それらを最適化します。手動でコードを生成または変更する場合は、単純に見えるコードを生成していないことを確認する必要がありますが、JIT では簡単に最適化できず、実行が遅くなります。

@Alexeiが言うように、それは安全ではなく、高速ではないと思いますが、遅くなる可能性があります。

于 2012-10-31T09:39:05.093 に答える