Pregunta

Estoy planeando desarrollar un perfilador utilizando la API JVMTI proporcionada por Oracle. Para una visualización, me gustaría implementar una GUI (marco QT) en la parte superior del código de agente. Mi primer agente JVMTI es AReady Compilating and Ejecutando y comencé a integrar el agente en mi proyecto QT.

Ahora me enfrento al problema de cómo unir agente con GUI. ¿Debería lanzarse la GUI dentro del agente? Por ejemplo en la función agente_onload?

Un largo plazo sería comenzar el perfil fuera de la GUI, aunque no puedo imaginar cómo darme cuenta de eso.

¿Fue útil?

Solución

Bueno ... tienes una serie de opciones, las más obvias serían comunicaciones basadas en el socket. Tendrá que suponer que la mayoría de los casos de uso de perfiles involucrarán un JVM sin cabeza remoto en un servidor. En mi perfilador, puede operar sin cabeza con una pequeña utilidad de inicio/parada/control en la misma máquina que el agente, los datos se recopilan en el servidor y se transfieren al cliente para su visualización. También puede iniciar el JVM remoto (o local) con el agente y conectarse al agente de escucha a través de un zócalo desde la GUI completa. Recogiendo ese enchufe al cliente.

También está el nuevo "JVM API de adjunta" que le permite "insertar" un agente en un JVM que ya está en ejecución, por lo tanto, si la máquina de destino es uni*, entonces puede usar SSH/SCP desde su GUI y script una transferencia SCP de la Agente al servidor y SSH para iniciar el adjunto.

Entonces ... enchufes (IP y/o dominio) y reutilizan ese código de la GUI para un cliente de control/colección sin cabeza

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top