Diferencia entre muestreo y creación de perfiles en jVisualVM

1 minuto de lectura

avatar de usuario
párrafo

VisualVM tiene dos pestañas separadas para muestreo y creación de perfiles. ¿Cuál es la diferencia entre muestreo y creación de perfiles en VisualVM?

avatar de usuario
npe

Sampling significa tomar muchos volcados de subprocesos y analizar los rastros de la pila. Esto suele ser más rápido, no requiere cambios de tiempo de ejecución en su código de bytes (lo que puede romperlo), pero también es menos preciso.

Profiling medio instrumentando sus clases y métodos, por lo que “informan” cada vez que se ejecutan. Esto es más preciso, ya que cuenta todas las invocaciones del método instrumentado, no solo las detectadas cuando se realiza el volcado. Sin embargo, la instrumentación significa que se cambia el código de bytes de sus clases, y esto puede romper su programa. En realidad, por esa razón, el uso de perfiles en grandes servidores de aplicaciones (como JBoss o WebLogic) a menudo hace que todo falle o se cuelgue.

  • ¿Significaría que la elaboración de perfiles es más precisa que el muestreo, pero requeriría más recursos?

    – Parag

    26 de agosto de 2012 a las 12:33

  • Descubrí que Sampling es más que lo suficientemente preciso cada vez que lo he usado para identificar los métodos de bajo rendimiento. Yo personalmente nunca uso perfiles.

    – Márquez

    06/02/2017 a las 16:30


¿Ha sido útil esta solución?