पर डीटीआरएस के साथ जावा अनुप्रयोगों को प्रोफाइल करना मैं मैकोज़ सिएरा 10.12 पर डीटीआर का उपयोग कर जावा एप्लिकेशन को प्रोफाइल करने का प्रयास कर रहा हूं। मैं जेडीके 8 का उपयोग कर रहा हूं:मैकोज़
⋊> ~ java -version
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
⋊> ~ echo $JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_102.jdk/Contents/Home
मेरा अंतिम लक्ष्य सभी जावा विधि प्रविष्टियों का पता लगाने और विशिष्ट पैकेजों के लिए बाहर निकलना है।
DTrace Probes in HotSpot VM और Mac OS X Port Using HotSpot DTrace Probes सुझाव देते हैं कि यह वास्तव में मैकोज़ पर समर्थित होना चाहिए। हालांकि, यहां तक कि जब मेरी जावा अनुप्रयोग चल रहा है, वहाँ कोई hotspot
जांच उपलब्ध हैं और jstack()
विफल प्रकट होता है:
⋊> ~ pgrep java
24564
⋊> ~ sudo dtrace -ln 'hotspot*:::'
dtrace: system integrity protection is on, some features will not be available
ID PROVIDER MODULE FUNCTION NAME
dtrace: failed to match hotspot*:::: No probe matches description
⋊> ~ sudo dtrace -n 'syscall::read:entry /execname == "java"/ { jstack(); }'
dtrace: system integrity protection is on, some features will not be available
dtrace: description 'syscall::read:entry ' matched 1 probe
dtrace: error on enabled probe ID 1 (ID 153: syscall::read:entry): invalid address (0xe2e3275e) in action #1
dtrace: error on enabled probe ID 1 (ID 153: syscall::read:entry): invalid address (0xe2e3275e) in action #1
dtrace: error on enabled probe ID 1 (ID 153: syscall::read:entry): invalid address (0xe2e3275e) in action #1
…
dtrace
आदेश को libjvm.dylib
के लिए पथ प्रदान करने में मदद नहीं लगता है:
⋊> ~ ll "$JAVA_HOME/jre/lib/server/"
total 31616
-rw-rw-r-- 1 root wheel 1.4K Jun 22 15:02 Xusage.txt
-rwxrwxr-x 1 root wheel 15K Jun 22 15:01 libjsig.dylib
-rwxrwxr-x 1 root wheel 15M Jun 22 15:02 libjvm.dylib
⋊> ~ sudo dtrace -L "$JAVA_HOME/jre/lib/server/" -ln 'hotspot*:::'
dtrace: system integrity protection is on, some features will not be available
ID PROVIDER MODULE FUNCTION NAME
dtrace: failed to match hotspot*:::: No probe matches description
तो मुझे क्या याद आ रही है? मैं डीटीआरएस सुविधाओं का उपयोग कर जावा एप्लिकेशन कैसे प्रोफाइल करूं?