Инструмент визуализации / анализа загрузки классов Java - PullRequest
3 голосов
/ 07 апреля 2011

Есть ли какой-нибудь инструмент, который подключается к jvm и показывает в реальном времени, как классы загружаются в этот jvm? Я предполагаю, что это сделало бы отличный плагин jvisualvm .. Но если я не найду ничего подобного, я задаюсь вопросом, будет ли это вообще возможно? Я нашел только несколько ссылок на некоторые, казалось бы, «неясные» инструменты, строго связанные с weblogic или webspere.

Предполагая, что такой инструмент возможен, будет ли он строго связан с конкретным контейнером?

Спасибо!

1 Ответ

1 голос
/ 11 мая 2011

Я понимаю, что это не работает с JVM, которая уже работает, но как насчет java -verbose:class?

Если вы хотите отлаживать проблемы загрузчика классов для определенного класса, вы можете соединиться с отладчиком и установить точку останова загрузки класса для этого класса (так их называет Eclipse, в IntelliJ вы просто помещаете точку останова в первую строку класс).

Обновление: Поскольку вы упомянули, что хотите увидеть загрузчики классов, теоретически я думаю, что вы могли бы написать агента, который вызывает java.lang.instrument.Instrumentation.getAllLoadedClasses() в agentmain и печатает дерево классов и их загрузчиков классов. Проблема, однако, в том, что ClassLoader не имеет «идентичности», поэтому вы можете получить красивую картинку, но у вас все еще нет никакого представления, к какому классному загрузчику относится развертывание Java EE или комплект OSGi. Я думаю, поэтому не так много инструментов, которые делают это ...

...