1. ホーム
  2. java

[解決済み] サーバーモードで実行中のJavaが、「mixed-mode」と表示されるのはなぜですか?

2022-02-17 03:55:04

質問

サーバーモードで実行中のJavaに、バージョンが"mixed-mode"であると表示されるのはなぜですか? これを見たとき、それはJVMが純粋なサーバーモードで本当にロードされなかったことを意味するのでしょうか?

解決方法は?

server modeはquot;not mixed"を意味するものではありません。別の設定です。

混在とは、JVMがコンパイルされたコードと解釈されたコードを混在させることを意味します。オプションとして、スイッチ -Xint で完全なインタプリタ型モードに切り替えることができます(通常は、これを実行したくありません)。

サーバーモードとは、ホットスポットコンパイラがサーバー設定で実行されることを意味します。一般的に、サーバーモードのVMは長時間動作することが想定されており、これを考慮した最適化が行われます。

ですから、もし混合モードと表示されても、あなたのVMがサーバーモードで動作していないことを示すものではありません。

EDIT: 実際に何が実行されているかを確認したい場合は、以下の出力を試してみてください。

System.out.println(System.getProperty("java.vm.name"));
System.out.println(System.getProperty("java.vm.info"));

少なくともSun VMやOpenJDKの場合は、これがヒントになります。64ビットシステム上では、常にServer VMが実行されることに気づくかもしれません。