Как настроить среду разработки для Java HotSpot VM?

Как лучше всего понять виртуальную машину Java HotSpot? И если я хочу внести изменения в исходный код и добавить свои собственные функции, какая будет лучшая среда разработки (хорошо ли работают ctags с большой базой кода или мне нужна полноценная IDE)?


person dacongy    schedule 21.10.2011    source источник


Ответы (1)


Я сомневаюсь, что вы захотите погрузиться в кодовую базу Hotspot... Я копирую части своего ответа из этого вопроса:

Я думаю, что Maxine Research VM от Oracle Labs будет хорошей отправной точкой. Вот цитата с первой страницы их вики:

Обзор проекта

В эпоху современных управляемых языков мы требуем от наших виртуальных машин еще большего: более высокая производительность, большая масштабируемость и поддержка новейших новых языков. Исследования и эксперименты важны, но уже не практичны в контексте зрелых, сложных производственных ВМ, написанных на нескольких языках.

Maxine VM — это платформа следующего поколения, которая устанавливает новый стандарт производительности в этой области исследований. Он полностью написан на Java, полностью совместим с современными Java IDE и стандартным JDK, имеет модульную архитектуру, которая позволяет подключать альтернативные реализации подсистем, таких как GC и компиляция, и сопровождается специальный инструмент разработки (Maxine Inspector) для отладки и визуализации почти всех аспектов состояния выполнения виртуальной машины.

Вот отличное видео, демонстрирующее его утилиты для мониторинга памяти:

person aioobe    schedule 21.10.2011
comment
Спасибо за совет вместо этого погрузиться в Maxine! Итак, насколько зрелой является эта виртуальная машина? Чем он отличается от Jikes RVM? - person dacongy; 21.10.2011
comment
Я не знаю на самом деле. Но ваша главная цель — экспериментировать с новыми функциями или создавать что-то столь же быстрое, как передовые технологии? Вы знаете, что большинство современных JVM имеют несколько разных JITter, работающих одновременно, и поверх них тысячи оптимизаций. Вы действительно хотите настроить такую ​​кодовую базу? Как же вы будете отлаживать такого зверя, если ваши модификации не делают того, что вы от них ожидаете? - person aioobe; 22.10.2011
comment
Мне нужно настроить виртуальную машину, чтобы реализовать в ней некоторый динамический анализ (например, профилировщик). Хотя у нас есть куча других способов делать подобные вещи, работа внутри виртуальной машины дает мне максимальную свободу. Что касается отладки, я думаю, что печать, вероятно, единственный способ): - person dacongy; 26.10.2011
comment
Этот проект должен быть устаревшим. - person Chao; 05.01.2017