jvm内存管理之java堆溢出 -实例分析
at java.util.Arrays.copyOf(Unknown Source)
at java.util.Arrays.copyOf(Unknown Source)
at java.util.ArrayList.grow(Unknown Source)
at java.util.ArrayList.ensureCapacityInternal(Unknown Source)
at java.util.ArrayList.add(Unknown Source)
at com.jaynol.jvm.oom.sample.HeapOOM.main(HeapOOM.java:24)
Heap
?def new generation ? total 9216K, used 8920K [0x33210000, 0x33c10000, 0x33c10000)
? eden space 8192K, 100% used [0x33210000, 0x33a10000, 0x33a10000)
? from space 1024K, ?71% used [0x33a10000, 0x33ac6038, 0x33b10000)
? to ? space 1024K, ? 0% used [0x33b10000, 0x33b10000, 0x33c10000)
?tenured generation ? total 10240K, used 5700K [0x33c10000, 0x34610000, 0x34610000)
? ?the space 10240K, ?55% used [0x33c10000, 0x341a10b8, 0x341a1200, 0x34610000)
?compacting perm gen ?total 12288K, used 168K [0x34610000, 0x35210000, 0x38610000)
? ?the space 12288K, ? 1% used [0x34610000, 0x3463a390, 0x3463a400, 0x35210000)
? ? ro space 10240K, ?42% used [0x38610000, 0x38a4f150, 0x38a4f200, 0x39010000)
? ? rw space 12288K, ?54% used [0x39010000, 0x3968fad8, 0x3968fc00, 0x39c10000)
从运行结果可以看出,经过JVM的3次Minor GC,再经过两次full GC后已经无法再GC了,空间已经无法再扩展了,最终导致了OutOfMemoryError