2017-09-21 10 views
1

Openj9には "動的AOT"があります。 Openjdk9にはバイトコードを共有ライブラリにコンパイルするAOTコンパイラ(jaotc)があります。Openj9でAOTコンパイラを使うには?

Openj9にはjaotcのようなプログラムはありませんが、JITedコードを保存するために "共有クラス"が使用されています。これは他のJVMで起動時間を短縮するために使用されます。

私は、次の質問がある:

  1. にはどうすればOpenj9 JVMは別のJVMによって生成JITedコードを使用するかどうかを確認していますか? (openjdk9では、監視するオプション "-XX:+ PrintAOT"があります)
  2. Openj9のAOTの使い方は?私はオプション "-Xshareclasses"でプログラムを実行し、このプログラムをもう一度実行しますか?
  3. Openj9 AOTに関する資料はありますか?

アドバイスがあれば分かります。ありがとう!

答えて

2

OpenJ9でAOTを有効にするには、-Xshareclassesオプションを有効にする必要があります。

  1. どのように私はOpenj9 JVMが 別のJVMによって生成JITedコードを使用するかどうかを確認していますか? (openjdk9には、 "-XX:+ PrintAOT"というオプションがあり、 があります)

    オプション-Xshareclasses:verboseAOTを使用します。次のような出力 が表示されます。

    共有キャッシュ内にROMMethod 0x000000000FFAE2C8のAOTコードが格納されています。共有キャッシュでROMMethod 0x000000001003C178ため

    見つかりAOTコード:

    そして、その後の実行に

    、次のようなメッセージが表示されます。

  2. Openj9のAOTの使い方は?私はオプション "-Xshareclasses"でプログラムを実行し、このプログラムをもう一度実行しますか?

    Javaプログラムの後続実行時にAOTedコードを永続化して再利用する場合は、-Xshareclasses:persistentを指定して実行します(-Xshareclassesが有効な場合、LinuxおよびWindowsプラットフォームでは 'persistent'サブオプションがデフォルトです)。 このオプションを使用すると、キャッシュがディスク上に作成されます。これはオペレーティングシステムの再起動を超えて持続します。オプションで、共有クラス・キャッシュ(name = subparameter)の名前を指定して、異なるアプリケーション用の共有キャッシュを区別することもできます。

  3. Openj9 AOTについての資料はありますか?

    は、私は次のドキュメントにあなたを指すこと:

    The AOT Compiler

    -Xshareclasses

    私もAOTの詳細ドキュメントが入手可能であるか、または作成することができるかどうかを確認するためにgithubの問題を開きます。

+0

P.S.:私はこの問題を開いた:https://github.com/eclipse/openj9/issues/97上記のリンクで更新したOpenJ9の正しいドキュメントを指していた。 – deesebas

+0

それは本当に私をたくさん助けます。ありがとう、@deesebas! – cwei

+0

AOTedコードを再利用したい、後続のJavaプログラムを実行すると、この後続のプログラムに対して "cacheDir"を設定する必要がありますか? AOTedコードがopenj9 jvmによって生成されたようですが、キャッシュはディスク上に作成されます。したがって、最初のJavaプログラムは、後続のプログラムがAOTedコードを再利用したいときに実行を続ける必要はありません。私は正しい? – cwei

関連する問題