2012-08-26 21 views

Respuesta

166

Sampling significa tomar muchos volcados de hilo y analizar las trazas de la 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.

+2

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

+0

Sí, he actualizado la respuesta. – npe

+6

He descubierto que Sampling es más que preciso cada vez que lo uso para identificar los métodos de mala ejecución. Yo personalmente nunca uso perfiles. – Marquez

Cuestiones relacionadas