Class HeapDumper


  • public class HeapDumper
    extends Object
    Class allowing access to Sun's heapDump method (Java 1.6+). Uses Reflection so that the code compiles on Java 1.5. The code will only work on Sun Java 1.6+.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static String dumpHeap()
      Dumps live objects from the heap to the outputFile file in the same format as the hprof heap dump.
      static String dumpHeap​(boolean live)
      Dumps objects from the heap to the outputFile file in the same format as the hprof heap dump.
      static String dumpHeap​(File basedir, boolean live)
      Dumps objects from the heap to the outputFile file in the same format as the hprof heap dump.
      static void dumpHeap​(String fileName)
      Dumps live objects from the heap to the outputFile file in the same format as the hprof heap dump.
      static void dumpHeap​(String fileName, boolean live)
      Dumps the heap to the outputFile file in the same format as the hprof heap dump.
      static void init()
      Initialise the dumper, and report if there is a problem.
    • Method Detail

      • init

        public static void init()
                         throws Exception
        Initialise the dumper, and report if there is a problem. This is optional, as the dump methods will initialise if necessary.
        Throws:
        Exception - if there is a problem finding the heapDump MXBean
      • dumpHeap

        public static void dumpHeap​(String fileName,
                                    boolean live)
                             throws Exception
        Dumps the heap to the outputFile file in the same format as the hprof heap dump.

        Calls the dumpHeap() method of the HotSpotDiagnostic MXBean, if available.

        See HotSpotDiagnosticMXBean

        Parameters:
        fileName - name of the heap dump file. Must be creatable, i.e. must not exist.
        live - if true, dump only the live objects
        Throws:
        Exception - if the MXBean cannot be found, or if there is a problem during invocation
      • dumpHeap

        public static void dumpHeap​(String fileName)
                             throws Exception
        Dumps live objects from the heap to the outputFile file in the same format as the hprof heap dump.

        Parameters:
        fileName - name of the heap dump file. Must be creatable, i.e. must not exist.
        Throws:
        Exception - if the MXBean cannot be found, or if there is a problem during invocation
        See Also:
        dumpHeap(String, boolean)
      • dumpHeap

        public static String dumpHeap()
                               throws Exception
        Dumps live objects from the heap to the outputFile file in the same format as the hprof heap dump.

        Creates the dump using the file name: dump_yyyyMMdd_hhmmss_SSS.hprof The dump is created in the current directory.

        Returns:
        the name of the dump file that was created
        Throws:
        Exception - if the MXBean cannot be found, or if there is a problem during invocation
        See Also:
        dumpHeap(boolean)
      • dumpHeap

        public static String dumpHeap​(boolean live)
                               throws Exception
        Dumps objects from the heap to the outputFile file in the same format as the hprof heap dump.

        Creates the dump using the file name: dump_yyyyMMdd_hhmmss_SSS.hprof The dump is created in the current directory.

        Parameters:
        live - true id only live objects are to be dumped.
        Returns:
        the name of the dump file that was created
        Throws:
        Exception - if the MXBean cannot be found, or if there is a problem during invocation
        See Also:
        dumpHeap(String, boolean)
      • dumpHeap

        public static String dumpHeap​(File basedir,
                                      boolean live)
                               throws Exception
        Dumps objects from the heap to the outputFile file in the same format as the hprof heap dump. The dump is created in the specified directory.

        Creates the dump using the file name: dump_yyyyMMdd_hhmmss_SSS.hprof

        Parameters:
        basedir - File object for the target base directory.
        live - true id only live objects are to be dumped.
        Returns:
        the name of the dump file that was created
        Throws:
        Exception - if the MXBean cannot be found, or if there is a problem during invocation
        See Also:
        dumpHeap(String, boolean)