oxygen jdk intellij graal java jvm heap jvisualvm

java - jdk - Diferencia entre muestreo y perfil en jVisualvm



visualvm java 9 (1)

Sampling significa tomar muchos volcados de hilo y analizar las trazas de pila. Esto generalmente es más rápido, no requiere cambios de tiempo de ejecución en su bytecode (que puede romperlo), pero también es menos preciso.

Profiling significa instrumenting sus clases y métodos, por lo que "informan" cada vez que se ejecutan. Esto es más preciso, ya que cuenta todas las invocación del método instrumentado, no solo las que se capturan cuando se realiza el volcado. Sin embargo, la instrumentación significa que el bytecode de sus clases ha cambiado, y esto puede interrumpir su programa. En realidad, por esa razón, el uso de perfiles en servidores de aplicaciones grandes (como JBoss o WebLogic) a menudo hace que todo muera o se cuelgue.

VisualVM tiene dos pestañas separadas para muestreo y creación de perfiles. ¿Alguien puede ayudarme a descubrir la diferencia entre el muestreo y el perfil en VisualVM?