Maison > Java > javaDidacticiel > Comment puis-je afficher le code compilé JIT dans la machine virtuelle Java (JVM) ?

Comment puis-je afficher le code compilé JIT dans la machine virtuelle Java (JVM) ?

Linda Hamilton
Libérer: 2024-12-05 17:14:11
original
370 Les gens l'ont consulté

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

Affichage du code compilé JIT dans une machine virtuelle Java (JVM)

La machine virtuelle Java (JVM) dispose d'un système juste à temps (JIT) compilateur qui optimise le bytecode Java en code natif. Pour examiner ce code natif, envisagez les techniques suivantes :

Utilisation générale

Utilisez les options JVM comme suit :

-XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly
Copier après la connexion

Spécifique Filtrage de méthodes

Vous pouvez isoler des méthodes spécifiques en utilisant les éléments suivants syntaxe :

-XX:+UnlockDiagnosticVMOptions -XX:CompileCommand=print,*MyClass.myMethod
Copier après la connexion

Remarque :

  • Des guillemets peuvent être nécessaires autour du deuxième argument, selon le système d'exploitation.
  • Méthode inlining peut gêner l'observabilité de certaines optimisations.

Installation sur Windows

Pour les systèmes Windows, suivez les instructions ci-dessous pour créer et installer les bibliothèques requises :

Binaires prédéfinis

Télécharger les binaires prédéfinis pour Windows du FCML projet :

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

Construction manuelle

  1. Installez Cygwin avec ce qui suit packages :

    • make
    • mingw64-x86_64-gcc-core (pour hsdis-amd64.dll)
    • mingw64-i686-gcc-core (pour hsdis-i386.dll)
    • diffutils
  2. Extrayez le package source GNU binutils (par exemple, binutils-2.25.tar.bz2) dans votre répertoire personnel Cygwin.
  3. Extraire le répertoire OpenJDK hsdis (depuis srcsharetools) vers votre répertoire personnel Cygwin.
  4. Dans Cygwin Terminal, accédez à ~/hsdis.
  5. Construisez hsdis-amd64.dll (ou hsdis-i386.dll) à l'aide de la commande appropriée :
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
Copier après la connexion
  1. Modifier hsdisbuildLinux-amd64bfdMakefile et remplacez SUBDIRS = doc po par SUBDIRS = po.
  2. Réexécutez la commande build.
  3. Copiez la DLL construite dans le répertoire binserver ou binclient de votre JRE.

Supplémentaire Conseils

Pour la syntaxe Intel ASM, utilisez l'option -XX:PrintAssemblyOptions=intel à côté des options PrintAssembly.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal