Home | History | Annotate | only in /prebuilts/jdk/jdk8/darwin-x86/sample/dtrace/hotspot
Up to higher level directory
NameDateSize
class_loading_stat.d21-Aug-20184.5K
gc_time_stat.d21-Aug-20186.4K
hotspot_calls_tree.d21-Aug-20183.6K
method_compile_stat.d21-Aug-20188.9K
method_invocation_stat.d21-Aug-20185.7K
method_invocation_stat_filter.d21-Aug-20186K
method_invocation_tree.d21-Aug-20184.3K
monitors.d21-Aug-20184.7K
object_allocation_stat.d21-Aug-20185K
README.txt21-Aug-20183.1K

README.txt

      1 ============================
      2 'hotspot' PROBES DESCRIPTION
      3 ============================
      4 
      5 This directory contains D scripts which demonstrate usage of 'hotspot' provider probes.
      6 
      7 The 'hotspot' provider makes available probes that can be used to track the
      8 lifespan of the VM, thread start and stop events, GC and memory pool
      9 statistics, method compilations, and monitor activity. With a startup flag,
     10 additional probes are enabled which can be used to monitor the running Java
     11 program, such as method enter and return probes, and object allocations. All
     12 of the hotspot probes originate in the VM library (libjvm.so), so they are
     13 also provided from programs which embed the VM.
     14 
     15 Many of the probes in the provider have arguments that can be examined to
     16 provide further details on the state of the VM. Many of these probes'
     17 arguments are opaque IDs which can be used to link probe firings to each
     18 other, however strings and other data are also provided. When string values
     19 are provided, they are always present as a pair: a pointer to unterminated
     20 modified UTF-8 data (see JVM spec: 4.4.7) , and a length value which
     21 indicates the extent of that data. Because the string data (even when none
     22 of the characters are outside the ASCII range) is not guaranteed to be
     23 terminated by a NULL character, it is necessary to use the length-terminated
     24 copyinstr() intrinsic to read the string data from the process.
     25 
     26 You can find more information about HotSpot probes here:
     27 http://java.sun.com/javase/6/docs/technotes/guides/vm/dtrace.html
     28 
     29 
     30 ===========
     31 THE SCRIPTS
     32 ===========
     33 
     34 The following scripts/samples which demonstrate 'hotspot' probes usage are
     35 available:
     36 
     37 - class_loading_stat.d 
     38   The script collects statistics about loaded and unloaded Java classes and
     39   dump current state to stdout every N seconds.
     40 
     41 - gc_time_stat.d
     42   The script measures the duration of a time spent in GC.
     43   The duration is measured for every memory pool every N seconds.
     44 
     45 - hotspot_calls_tree.d
     46   The script prints calls tree of fired 'hotspot' probes.
     47 
     48 - method_compile_stat.d
     49   The script prints statistics about N methods with largest/smallest
     50   compilation time every M seconds.
     51 
     52 - method_invocation_stat.d
     53   The script collects statistics about Java method invocations.
     54 
     55 - method_invocation_stat_filter.d
     56   The script collects statistics about Java method invocations.
     57   You can specify package, class or method name to trace.
     58 
     59 - method_invocation_tree.d
     60   The script prints tree of Java and JNI method invocations.
     61 
     62 - monitors.d
     63   The script traces monitor related probes.
     64 
     65 - object_allocation_stat.d
     66   The script collects statistics about N object allocations every M seconds.
     67 
     68 
     69 ==========
     70 HOW TO RUN
     71 ==========
     72 
     73 To run any D script from hotspot directory you can do either:
     74 
     75  # dscript.d -c "java ..."
     76 
     77  or if you don't have Solaris 10 patch which allows to specify probes that
     78  don't yet exist ( Hotspot DTrace probes are defined in libjvm.so and as
     79  result they could be not been yet loaded when you try to attach D script to
     80  the Java process) do:
     81 
     82  # ../helpers/dtrace_helper.d -c "java ..." dscript.d
     83 
     84  or if your application is already running you can just simply attach
     85  the D script like:
     86 
     87  # dscript.d -p JAVA_PID 
     88