JVM пошаговый симулятор - PullRequest
       7

JVM пошаговый симулятор

0 голосов
/ 19 ноября 2018

Существует ли бесплатная реализация JVM, которая позволяет просматривать содержимое различных частей виртуальной машины Java (например, callstack, heap) и выполнять программу шаг за шагом?

1 Ответ

0 голосов
/ 22 ноября 2018

Как только JIT компилирует байт-код в собственный код, регистры и стек виртуальных машин теряют смысл.

Я бы использовал отладчик, чтобы посмотреть, что программа Java построчно выполняет.Байт-код предназначен для виртуальной машины, а не для фактической, и JVM не должна буквально следовать виртуальной машине, только то, что делает программа.

JIT может

  • использоватьмножество регистров, которые ваш ЦП имеет вместо того, чтобы использовать чистый стек.
  • встроенный код, а не выполнять вызовы методов.
  • удалить код, который он определяет, не используется.
  • placeобъекты в стеке.
  • не синхронизируют объекты, которые используются только в локальном методе.

Хороший инструмент, чтобы увидеть, как код преобразуется из байтового кода в машинный код: JITWatch

...