ホームページ > Java > &#&チュートリアル > Java 仮想マシン (JVM) で JIT コンパイルされたコードを表示するにはどうすればよいですか?

Java 仮想マシン (JVM) で JIT コンパイルされたコードを表示するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-05 17:14:11
オリジナル
333 人が閲覧しました

How Can I View JIT-Compiled Code in the Java Virtual Machine (JVM)?

Java 仮想マシン (JVM) で JIT コンパイルされたコードを表示する

Java 仮想マシン (JVM) はジャストインタイム機能を備えています。 Java バイトコードをネイティブ コードに最適化する (JIT) コンパイラー。このネイティブ コードを調べるには、次の手法を検討してください。

一般的な使用法

次のように JVM オプションを利用します。

-XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly
ログイン後にコピー

特定メソッド フィルタリング

次を使用して特定のメソッドを分離できます。構文:

-XX:+UnlockDiagnosticVMOptions -XX:CompileCommand=print,*MyClass.myMethod
ログイン後にコピー

注:

  • OS によっては、2 番目の引数の前後に引用符が必要な場合があります。
  • メソッドのインライン化特定の観測性を妨げる可能性があります

Windows へのインストール

Windows システムの場合は、以下の手順に従って必要なライブラリをビルドしてインストールします。

ビルド済みバイナリ

Windows 用のビルド済みバイナリを次の場所からダウンロードします。 fcml プロジェクト:

  • hsdis-amd64.dll
  • hsdis-i386.dll

マニュアルビルド

  1. インストールCygwin と次のパッケージ:

    • make
    • mingw64-x86_64-gcc-core (hsdis-amd64.dll 用)
    • mingw64-i686-gcc-core (のためにhsdis-i386.dll)
    • diffutils
  2. GNU binutils ソース パッケージ (例、binutils-2.25.tar.bz2) を Cygwin ホーム ディレクトリに抽出します。
  3. OpenJDK hsdis ディレクトリを抽出します ( srcsharetools) を Cygwin ホーム ディレクトリに移動します。
  4. Cygwin ターミナルで ~/hsdis に移動します。
  5. 適切なコマンドを使用して hsdis-amd64.dll (または hsdis-i386.dll) をビルドします。
make OS=Linux MINGW=x86_64-w64-mingw32 'AR=$(MINGW)-ar' BINUTILS=~/binutils-2.25
(or)
make OS=Linux MINGW=i686-w64-mingw32 'AR=$(MINGW)-ar' BINUTILS=~/binutils-2.25
ログイン後にコピー
  1. 編集hsdisbuildLinux-amd64bfdMakefile を作成し、SUBDIRS = doc po を SUBDIRS = po に変更します。
  2. ビルド コマンドを再実行します。
  3. ビルドされた DLL を JRE の binserver または binclient にコピーします。

追加のヒント

インテル ASM 構文の場合は、PrintAssembly オプションと一緒にオプション -XX:PrintAssemblyOptions=intel を使用します。

以上がJava 仮想マシン (JVM) で JIT コンパイルされたコードを表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート