Tuve algunas buenas experiencias con DTrace.
Tenía un cliente que ejecutaba nuestro código Java en un servidor de producción que funcionaba 24x7. Tuvimos algunos problemas de rendimiento con las aplicaciones. No fue posible detener las JVM para conectar el generador de perfiles. Además, el comportamiento no estaba presente en nuestro laboratorio con la misma carga.
Resolvimos el problema usando DTrace con las sondas relacionadas con JVM, ya que podía conectarlo a las JVM en ejecución y la sobrecarga introducida fue mínima (1.3% en una máquina Netra T2000 SPARC).
La ventaja del método era que toda la depuración se realizaba a través de una línea de acceso telefónico (33kbps) al laboratorio del cliente. Es casi imposible ejecutar cualquier otro perfilador/depurador con estas restricciones (JDWP es bastante detallado para este ancho de banda). Con mi script de DTrace solo filtraba lo que era interesante para mí.
Para ver algunos consejos: http://java.dzone.com/articles/java-profiling-dtrace?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+javalobby/frontpage+(Javalobby+/+Java+Zone)
http://download.oracle.com/javase/6/docs/technotes/guides/vm/dtrace.html
he adaptado esos guiones http://blogs.oracle.com/ahl/date/20050418#dtracing_java
Otra gran ventaja son los valores agregados que se pueden utilizar fácilmente para crear estadísticas personalizadas.
Pero, si tiene las condiciones adecuadas, todo se puede hacer más fácilmente con otras herramientas. DTrace es muy potente pero apunta a más condiciones de metal desnudo (quizás el proyecto DLight ayudaría).
"No es una pregunta real"? ¿Cómo debería decirlo entonces? –