Diferencia entre muestreo y perfilado en jVisualVM


158

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?

Respuestas:


182

Samplingsignifica 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.

Profilingsignifica instrumentar sus clases y métodos, para que "informen" cada vez que se ejecutan. Esto es más preciso, ya que cuenta cada invocación de método instrumentado, no solo los capturados cuando se realiza el volcado. Sin embargo, la instrumentación significa que se modifica 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 servidores de aplicaciones grandes (como JBoss o WebLogic) a menudo hace que todo muera o se cuelgue.


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

10
Descubrí que el muestreo es más que exacto cada vez que lo uso para identificar los métodos de bajo rendimiento. Yo personalmente nunca uso perfiles.
Márquez
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.