Nuestra aplicación tiene ~ 10 hilos haciendo tareas separadas (sin conjuntos de hilos). No estamos experimentando un punto muerto, pero siempre estamos tratando de reducir la latencia para responder a una solicitud, por lo que estamos interesados en determinar qué bloqueos son los más disputados. jconsole muestra con qué frecuencia se bloquean los hilos, y no es muy frecuente, pero aún queremos saber qué bloqueos son los más disputados.Determinar qué bloqueos son los más disputados?
Estamos trabajando con Sun JVM, por lo que JLA de IBM no es útil, y no estamos utilizando Solaris, por lo que no podemos usar dTrace.
EDIT: Quiero hacer esta observación en la producción, donde un generador de perfiles frenaría la aplicación inaceptable. Este es un sistema de comercio, si somos lentos, perdemos dinero, por lo que no ejecutamos perfiles en producción. También es bastante difícil simular los muchos intercambios con los que hablamos en una prueba de rendimiento.
DTrace es el único sistema personalmente estoy consciente de que hace lo que quiere sin necesidad de herramientas de perfilado. – aperkins
Pensando más en esto, creo que la instrumentación es el mejor enfoque. Puede registrar solicitudes de bloqueo individuales o mantener contadores globales. –