Pregunta

Pregunta básica: JVM proporciona JVMTI qué API nativa para perfilar y depuración JVM. La instrumentación JVM también hace lo mismo (¿eso es correcto?). En caso afirmativo, ¿cuál es la diferencia entre ambos?

¿Fue útil?

Solución

No creo que la instrumentación sea jvmti es un superconjunto de instrumentación ... ya que ambos pueden usarse de forma independiente.

JVMTI se basa en eventos y, en los manejadores de eventos, podemos capturar la información requerida sobre el JVM.

La instrumentación es algo en lo que modificamos el Bytecode y, por lo tanto, a su vez, agregue el código adicional en el tiempo de ejecución en la ubicación requerida en la clase antes de que se cargue en el JVM. Este código adicional cuando se ejecuta ayudará a recopilar información requerida para el Profiler.

La instrumentación se puede lograr con la ayuda de varios jarras de terceros como ASM.

Según mi conocimiento y experiencia, ambos son para el perfil de Java y no para el perfil nativo.

Probablemente necesite leer más documentos y probar diferentes muestras para una mejor comprensión.

Otros consejos

JVMTI ofrece toda la funcionalidad que el depurador necesita, sin embargo, si desea más de lo que proporciona el JVMTI, debe usar la instrumentación.

JVMTI es una funcionalidad base que proporciona todo tipo de eventos para la depuración, el perfil, etc. Una de las áreas que proporciona es el acceso a las clases de intercepción (y redefinir). Java.lang.instrument es un envoltorio Java sobre JVMTI que proporciona una forma agradable, fácil y accesible de llegar a los eventos de carga de clase.

Piense en JVMTI como un superconjunto puro de java.lang.instrument, pero requiere que el usuario escriba el código C.

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