2009-07-22 10 views
9

Mój system Leopard ma dtrace zbudowany w Mam również Java 6 zainstalowany przy użyciu Apple dostarczonego instalatora.Jak korzystać z sond hotspot w systemie dtrace w systemie 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)

Niemniej dtrace pokazuje żadnych sond hotspot podczas dodawania sondy:

$ sudo dtrace -l | grep spot 
$

Can Czy ktoś mi powie, w jaki sposób włączyć sondę Dtrace do Java (podobno wysyłają ją w Javie 6) w systemie Leopard?

Odpowiedz

5

"Hmm, ciekawa jestem. działające w tych samych konfiguracjach, ale dla mnie sondy nie wyświetlają się, z jakiej linii komend korzystałeś? "sudo dtrace -l | miejsce grep "?"

  • Tylko jedno sprawdzenie krzyża. Powinieneś mieć uruchomioną aplikację java w momencie, gdy wydajesz "sudo dtrace -l | grep spot". Tylko wtedy sondy będą wymienione.
+0

Nie, nie miałem uruchomionej aplikacji Java. Rzeczywiście działa teraz. Dzięki! – user66237

+0

Sondy są nazywane 'hotspot_jni5867', co oznacza, że ​​identyfikator procesu jest zawarty w nazwie sondy. Sondy są tworzone dynamicznie po uruchomieniu procesu. –

0

Czy na pewno dotyczy to również maszyny JVM firmy Apple? O ile haki DTrace są wymienione w dokumencie dotyczącym JDK 6, można je również znaleźć na: Non-standard Java HotSpot VM Options (podkreślenie dodano):

-XX: -ZdłużoneDTraceProbes Włącz wydajne sondy Dtrace.
(wprowadzone w 6. Stosowna Solaris tylko.)

Nie jest to dobry znak, jeśli jest to platforma specyficzny. AFAIK Apple tworzy własną niestandardową maszynę JVM.

+1

Dobra uwaga. Wygląda na to, że JDK firmy Sun obsługuje tylko dtrace. OpenJDK ma zaplanowane wsparcie, ale jeszcze się nie wdrożyło. Prawdopodobnie to samo dotyczy implementacji Apple. – user66237

1

biegnę Snow Leopard z Java 1.6, i widzę sondy gorący punkt:

...

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, interesujące. Używam tych samych konfiguracji, ale dla mnie sondy się nie wyświetlają. Jakiej linii poleceń użyłeś? Również "sudo dtrace -l | grep spot"? – user66237

+0

'sudo dtrace -l | grep hotspot "robi to. –

Powiązane problemy