2009-07-22 10 views
9

Mi sistema Leopard ha dtrace construida en También tengo instalado Java 6, usando el instalador proporcionado por Apple:.Cómo usar las sondas de punto de acceso en dtrace en Mac OS X Leopard?

$ java -version 
java version "1.6.0_13" 
Java(TM) SE Runtime Environment (build 1.6.0_13-b03-211) 
Java HotSpot(TM) 64-Bit Server VM (build 11.3-b02-83, mixed mode)

Sin embargo, dtrace muestra ninguna sonda de punto de acceso al enumerar las sondas:

$ sudo dtrace -l | grep spot 
$

Puede ¿alguien me dice cómo habilitar las sondas dtrace para Java (supuestamente se envían con Java 6) en Leopard?

Respuesta

5

"Hmm, interesante que soy. ejecutando las mismas configuraciones, pero para mí las sondas no se muestran. ¿Qué línea de comando usaste? También "sudo dtrace -l | grep spot "?"

  • Solo un cheque cruzado. Debería tener una aplicación Java en ejecución en el momento en que emita "sudo dtrace -l | grep spot". Solo entonces las sondas se enumerarán.
+0

No, no tenía Java ejecutándose. De hecho, está funcionando ahora. ¡Gracias! – user66237

+0

Las sondas se nombran como 'hotspot_jni5867', lo que significa que la identificación del proceso se incluye en el nombre de la sonda. Las sondas se crean dinámicamente cuando se inicia un proceso. –

0

¿Está seguro de que esto también se aplica a Apple JVM? Mientras que los ganchos DTrace se mencionan en el documento sobre JDK 6, también puede encontrarlos en Non-standard Java HotSpot VM Options (énfasis añadido):

-XX: -ExtendedDTraceProbes Habilite las sondas dtrace que afectan el rendimiento.
(introducido en 6. Relevante para Solaris.)

No

una buena señal si se trata de una plataforma específica. AFAIK Apple construye su propia JVM hecha a medida.

+1

Buen punto. De hecho, parece que solo el JDK de Sun admite dtrace. OpenJDK tiene soporte planeado pero aún no implementado, parece. Probablemente lo mismo sea válido para la implementación de Apple. – user66237

1

estoy corriendo Snow Leopard con Java 1.6, y puedo ver las sondas de punto de acceso:

...

43223 hotspot_jni3644 libclient.dylib     jni_AllocObject AllocObject-entry 
43224 hotspot_jni3644 libclient.dylib     jni_AllocObject AllocObject-return 
43225 hotspot_jni3644 libclient.dylib   jni_AttachCurrentThread AttachCurrentThread-entry 
43226 hotspot_jni3644 libclient.dylib   jni_AttachCurrentThread AttachCurrentThread-return 
43227 hotspot_jni3644 libclient.dylib jni_AttachCurrentThreadAsDaemon AttachCurrentThreadAsDaemon-entry 
43228 hotspot_jni3644 libclient.dylib jni_AttachCurrentThreadAsDaemon AttachCurrentThreadAsDaemon-return 
43229 hotspot_jni3644 libclient.dylib    jni_CallBooleanMethod CallBooleanMethod-entry 
43230 hotspot_jni3644 libclient.dylib    jni_CallBooleanMethod CallBooleanMethod-return 

...

+0

Hmm, interesante. Estoy ejecutando las mismas configuraciones pero para mí las sondas no aparecen. ¿Qué línea de comando usaste? También "sudo dtrace -l | grep spot"? – user66237

+0

'sudo dtrace -l | grep hotspot 'lo hace. –