GUI поверх агента JVMTI - PullRequest
1 голос
/ 15 марта 2011

Я планирую разработать профилировщик с использованием API JVMTI, предоставляемого Oracle.Для визуализации я хотел бы реализовать графический интерфейс (Qt framework) поверх кода агента.Мой первый агент jvmti уже давно компилируется и работает, и я начал интегрировать агент в мой проект Qt.

Теперь я сталкиваюсь с проблемой, как связать агент с GUI.Должен ли графический интерфейс быть запущен внутри агента?Например, в функции Agent_OnLoad?

Долгосрочной целью было бы начать профилирование GUI, хотя я не представляю, как это реализовать.

1 Ответ

0 голосов
/ 15 марта 2011

Ну, у вас есть несколько вариантов, наиболее очевидным из которых будет использование сокетов. Вы должны будете предположить, что в большинстве случаев профилирования используется удаленная JVM без сервера на сервере. В моем профилировщике вы можете работать без головы с помощью небольшой утилиты запуска / остановки / управления на том же компьютере, что и агент, данные собираются на сервере и передаются клиенту для визуализации. Вы также можете запустить удаленный (или локальный) jvm с агентом и подключиться к прослушивающему агенту через сокет из полного графического интерфейса ... собирая через этот сокет клиент.

Существует также новый "API присоединения JVM", который позволяет вам "вставлять" агент в уже работающую JVM, поэтому, если целевой машиной является UNI *, вы можете использовать ssh / scp из своего графического интерфейса и сценарий sCP передача агента на сервер и SSH для инициации присоединения.

Итак ... сокеты (IP и / или домен) и повторное использование этого кода из графического интерфейса для клиента без контроля / сбора данных

...