title: Java heap dump analysis tools keep crashing
body: <p>I have a server running a 3gb JVM with a 750 meg permgen space.  Even after throwing more hardware at this stupid application, im still getting the occasional out of memory heap dump.  I need to figure out what was going on at the time of the crash but im having a problem with my analysis tool.</p>
  
  <p>the JVM is running on AS/400 hardware which means i need IBM's PowerPC version of the JVM.  Of course IBM being IBM, they changed the format of the dump file from the standard Sun (Oracle) version to the custom IBM version.  Apparently the only dump analysis tools out there are built as Eclipse plugins, that plugin has an IBM plugin that allows it to read IBM's custom dump file.</p>
  
  <p>Thats the configuration, now the problem.  The absolute biggest i can crank the JVM on my laptop is 4800 megs with a 4700 meg permgen.  Eclipse won't run with it set any higher than that, i suspect because that takes it over 100% of the available memory of my laptop.  Even with all this space, Eclipse gives me heap dumps trying to analyze the file.</p>
  
  <p>Are there any other analysis tools out there that don't require me to have a JVM bigger than the JVM im trying to analyze?</p>
  
  <p>here is a log entry from where eclipse is crashing</p>
  
  <pre><code>!ENTRY org.eclipse.core.jobs 4 2 2012-04-02 12:08:10.540
  !MESSAGE An internal error occurred during: "Parsing heap dump from 'C:\Users\slepecw\Code\Larry-Heap-Dumps\20110612\heapdump.20110612.165113.17755.0003.phd'".
  !STACK 0
  java.lang.OutOfMemoryError: Java heap space
      at java.util.Arrays.copyOf(Arrays.java:2882)
      at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)
      at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:515)
      at java.lang.StringBuilder.append(StringBuilder.java:189)
      at org.apache.commons.io.output.StringBuilderWriter.write(StringBuilderWriter.java:138)
      at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1365)
      at org.apache.commons.io.IOUtils.copy(IOUtils.java:1340)
      at org.apache.commons.io.IOUtils.copy(IOUtils.java:1287)
      at org.apache.commons.io.IOUtils.toString(IOUtils.java:502)
      at org.eclipse.wb.internal.core.editor.describer.JavaSourceUiDescriber.describe(JavaSourceUiDescriber.java:51)
      at org.eclipse.core.internal.content.ContentTypeCatalog.describe(ContentTypeCatalog.java:218)
      at org.eclipse.core.internal.content.ContentTypeCatalog.collectMatchingByContents(ContentTypeCatalog.java:190)
      at org.eclipse.core.internal.content.ContentTypeCatalog.internalFindContentTypesFor(ContentTypeCatalog.java:401)
      at org.eclipse.core.internal.content.ContentTypeCatalog.internalFindContentTypesFor(ContentTypeCatalog.java:450)
      at org.eclipse.core.internal.content.ContentTypeCatalog.findContentTypesFor(ContentTypeCatalog.java:298)
      at org.eclipse.core.internal.content.ContentTypeMatcher.findContentTypesFor(ContentTypeMatcher.java:57)
      at org.eclipse.mat.dtfj.DTFJIndexBuilder.getDynamicDTFJDump(DTFJIndexBuilder.java:7940)
      at org.eclipse.mat.dtfj.DTFJIndexBuilder.getUncachedDump(DTFJIndexBuilder.java:7862)
      at org.eclipse.mat.dtfj.DTFJIndexBuilder.getDump(DTFJIndexBuilder.java:7675)
      at org.eclipse.mat.dtfj.DTFJIndexBuilder.fill(DTFJIndexBuilder.java:579)
      at org.eclipse.mat.parser.internal.SnapshotFactoryImpl.parse(SnapshotFactoryImpl.java:203)
      at org.eclipse.mat.parser.internal.SnapshotFactoryImpl.openSnapshot(SnapshotFactoryImpl.java:114)
      at org.eclipse.mat.snapshot.SnapshotFactory.openSnapshot(SnapshotFactory.java:145)
      at org.eclipse.mat.ui.snapshot.ParseHeapDumpJob.run(ParseHeapDumpJob.java:83)
      at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
  !SESSION 2012-04-02 12:39:07.107 -----------------------------------------------
  eclipse.buildId=M20110909-1335
  java.version=1.6.0_30
  java.vendor=Sun Microsystems Inc.
  BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=en_US
  Framework arguments:  -product org.eclipse.epp.package.java.product
  Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.java.product
  </code></pre>