Вопрос

Я планирую разработать профилировщик, используя API JVMTI, предоставленный Oracle. Для визуализации я хотел бы внедрить графический интерфейс (QT Framework) поверх кода агента. Мой первый агент JVMTI - это Aready Compling and Running, и я начал интегрировать агента в свой проект QT.

Теперь я сталкиваюсь с проблемой, как соединить агента с графическим интерфейсом. Следует ли запустить графический интерфейс внутри агента? Например, в функции agent_onload?

В долгосрочной перспективе будет начало профилирования из графического интерфейса, хотя я не могу представить, как это понять.

Это было полезно?

Решение

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

Существует также новый API «JVM ATCTH API», который позволяет вам «вставить» агент в уже запущенный JVM, поэтому, если целевая машина - это Uni*, то вы можете использовать SSH/SCP из вашего графического интерфейса и сценарий передачи SCP Агент на сервер и SSH, чтобы инициировать прикрепление.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top