общего пользования
Как объясняется другими ответами, вы можете работать со следующими параметрами JVM:
-XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly
Фильтр по определенному методу
Вы также можете фильтровать по определенному методу со следующим синтаксисом:
-XX:+UnlockDiagnosticVMOptions -XX:CompileCommand=print,*MyClass.myMethod
Примечания:
- вам может потребоваться поместить второй аргумент в кавычки в зависимости от ОС и т. Д.
- если метод встроен, вы можете пропустить некоторые оптимизации
Как: установить необходимые библиотеки в Windows
Если вы работаете в Windows, на этой странице есть инструкции по сборке и установке hsdis-amd64.dll
и hsdis-i386.dll
, необходимые для его работы. Мы копируем ниже и расширяем содержание этой страницы * для справки:
Где взять готовые двоичные файлы
Вы можете загрузить готовые двоичные файлы для Windows из fcml проекта
Как собрать hsdis-amd64.dll
и hsdis-i386.dll
в Windows
Эта версия руководства была подготовлена для 64-битной Windows 8.1 с использованием 64-битного Cygwin и создания hsdis-amd64.dll
Установить Cygwin . На экране Select Packages
добавьте следующие пакеты (развернув категорию Devel
и щелкнув один раз на ярлыке Skip
рядом с именем каждого пакета):
make
mingw64-x86_64-gcc-core
(необходимо только для hsdis-amd64.dll
)
mingw64-i686-gcc-core
(необходимо только для hsdis-i386.dll
)
diffutils
(в категории Utils
)
Запустите терминал Cygwin. Это можно сделать с помощью иконки на рабочем столе или в меню «Пуск», созданной установщиком, и создаст домашний каталог Cygwin (по умолчанию C:\cygwin\home\<username>\
или C:\cygwin64\home\<username>\
).
- Загрузите последний пакет исходного кода GNU binutils и распакуйте его содержимое в домашний каталог Cygwin. На момент написания статьи последняя версия
binutils-2.25.tar.bz2
. Это должно привести к появлению каталога с именем binutils-2.25
(или последней версии) в вашем домашнем каталоге Cygwin.
- Загрузите исходный код OpenJDK с помощью , перейдя в репозиторий JDK 8 Updates , выбрав тег, соответствующий установленной версии JRE, и нажав bz2. Извлеките каталог hsdis (находится в
src\share\tools
) в домашний каталог Cygwin.
- В терминале Cygwin введите
cd ~/hsdis
.
Чтобы построить hsdis-amd64.dll
, введите
make OS=Linux MINGW=x86_64-w64-mingw32 'AR=$(MINGW)-ar' BINUTILS=~/binutils-2.25
Чтобы построить hsdis-i386.dll
, введите
make OS=Linux MINGW=i686-w64-mingw32 'AR=$(MINGW)-ar' BINUTILS=~/binutils-2.25
В любом случае замените 2.25
на версию binutils, которую вы скачали. OS=Linux
необходимо, потому что, хотя Cygwin является Linux-подобной средой, make-файл hsdis не может распознать его как таковой.
- Сборка не удастся с сообщениями
./chew: No such file or directory
и gcc: command not found
. Отредактируйте <Cygwin home directory>\hsdis\build\Linux-amd64\bfd\Makefile
в текстовом редакторе, таком как Wordpad или Notepad ++, чтобы изменить SUBDIRS = doc po
(строка 342, если используется binutils 2.25) на SUBDIRS = po
. Повторите предыдущую команду.
Теперь DLL можно установить, скопировав ее из hsdis\build\Linux-amd64
или hsdis\build\Linux-i586
в каталог JRE bin\server
или bin\client
. Вы можете найти все такие каталоги в вашей системе, выполнив поиск java.dll
.
Дополнительный совет: если вы предпочитаете синтаксис Intel ASM AT & T, укажите -XX:PrintAssemblyOptions=intel
вместе с любыми другими параметрами PrintAssembly, которые вы используете.
* страница лицензии Creative Commons