Created
May 18, 2011 10:35
-
-
Save rednaxelafx/978336 to your computer and use it in GitHub Desktop.
Use JMX to make HPROF heap dumps right before and after a full GC
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
+PrintGCDetails |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.lang.management.ManagementFactory | |
import com.sun.management.HotSpotDiagnosticMXBean | |
HOTSPOT_BEAN_NAME = "com.sun.management:type=HotSpotDiagnostic" | |
server = ManagementFactory.platformMBeanServer | |
bean = ManagementFactory.newPlatformMXBeanProxy(server, HOTSPOT_BEAN_NAME, HotSpotDiagnosticMXBean) | |
bean.setVMOption('HeapDumpBeforeFullGC', 'true') | |
bean.setVMOption('HeapDumpAfterFullGC', 'true') | |
System.gc() | |
bean.setVMOption('HeapDumpBeforeFullGC', 'false') | |
bean.setVMOption('HeapDumpAfterFullGC', 'false') | |
quit |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$ groovysh | |
[GC [PSYoungGen: 14016K->1312K(16320K)] 14016K->1312K(53696K), 0.0111510 secs] [Times: user=0.01 sys=0.00, real=0.00 secs] | |
[GC [PSYoungGen: 15328K->2272K(30336K)] 15328K->4832K(67712K), 0.0286280 secs] [Times: user=0.02 sys=0.03, real=0.03 secs] | |
Groovy Shell (1.7.7, JVM: 1.6.0_25) | |
Type 'help' or '\h' for help. | |
---------------------------------------------------------------------------------------------------------------------------- | |
groovy:000> import java.lang.management.ManagementFactory | |
===> [import java.lang.management.ManagementFactory] | |
groovy:000> import com.sun.management.HotSpotDiagnosticMXBean | |
===> [import java.lang.management.ManagementFactory, import com.sun.management.HotSpotDiagnosticMXBean] | |
groovy:000> | |
groovy:000> HOTSPOT_BEAN_NAME = "com.sun.management:type=HotSpotDiagnostic" | |
===> com.sun.management:type=HotSpotDiagnostic | |
groovy:000> server = ManagementFactory.platformMBeanServer | |
[GC [PSYoungGen: 30304K->2288K(30336K)] 32864K->8856K(67712K), 0.0643130 secs] [Times: user=0.16 sys=0.01, real=0.07 secs] | |
===> com.sun.jmx.mbeanserver.JmxMBeanServer@7297e3a5 | |
groovy:000> bean = ManagementFactory.newPlatformMXBeanProxy(server, HOTSPOT_BEAN_NAME, HotSpotDiagnosticMXBean) | |
===> MXBeanProxy(com.sun.jmx.mbeanserver.JmxMBeanServer@7297e3a5[com.sun.management:type=HotSpotDiagnostic]) | |
groovy:000> bean.setVMOption('HeapDumpBeforeFullGC', 'true') | |
===> null | |
groovy:000> bean.setVMOption('HeapDumpAfterFullGC', 'true') | |
===> null | |
groovy:000> System.gc() | |
[GC [PSYoungGen: 10460K->2288K(58368K)] 17028K->9639K(95744K), 0.0166920 secs] [Times: user=0.03 sys=0.00, real=0.02 secs] | |
[Heap Dump: Dumping heap to java_pid16836.hprof ... | |
Heap dump file created [20066598 bytes in 0.347 secs] | |
, 0.3514030 secs][Full GC (System) [PSYoungGen: 2288K->0K(58368K)] [PSOldGen: 7351K->9621K(37376K)] 9639K->9621K(95744K) [PSPermGen: 18626K->18626K(37824K)], 0.1324840 secs] [Times: user=0.12 sys=0.02, real=0.14 secs] | |
[Heap DumpDumping heap to java_pid16836.hprof.1 ... | |
Heap dump file created [20013677 bytes in 0.340 secs] | |
, 0.3398950 secs]===> null | |
groovy:000> bean.setVMOption('HeapDumpBeforeFullGC', 'false') | |
===> null | |
groovy:000> bean.setVMOption('HeapDumpAfterFullGC', 'false') | |
===> null | |
groovy:000> quit | |
Heap | |
PSYoungGen total 58368K, used 9250K [0x00000000edc00000, 0x00000000f1740000, 0x0000000100000000) | |
eden space 56064K, 16% used [0x00000000edc00000,0x00000000ee5089b0,0x00000000f12c0000) | |
from space 2304K, 0% used [0x00000000f1500000,0x00000000f1500000,0x00000000f1740000) | |
to space 2304K, 0% used [0x00000000f12c0000,0x00000000f12c0000,0x00000000f1500000) | |
PSOldGen total 37376K, used 9621K [0x00000000c9400000, 0x00000000cb880000, 0x00000000edc00000) | |
object space 37376K, 25% used [0x00000000c9400000,0x00000000c9d65410,0x00000000cb880000) | |
PSPermGen total 37824K, used 18758K [0x00000000c4200000, 0x00000000c66f0000, 0x00000000c9400000) | |
object space 37824K, 49% used [0x00000000c4200000,0x00000000c5451ba8,0x00000000c66f0000) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment