java heap_javaHeap的组成及GC监控
javaHeap
分為三個(gè)段:YongGeneration、OldGeneration、PermanentGeneration
Young(年輕代)
年 輕代分三個(gè)區(qū)。一個(gè)Eden區(qū),兩個(gè)Survivor區(qū)。大部分對象在Eden區(qū)中生成。當(dāng)Eden區(qū)滿時(shí),還存活的對象將被復(fù)制到Survivor區(qū) (兩個(gè)中的一個(gè)),當(dāng)這個(gè)Survivor區(qū)滿時(shí),此區(qū)的存活對象將被復(fù)制到另外一個(gè)Survivor區(qū),當(dāng)這個(gè)Survivor去也滿了的時(shí)候,從第一 個(gè)Survivor區(qū)復(fù)制過來的并且此時(shí)還存活的對象,將被復(fù)制“年老區(qū)(Tenured)”。需要注意,Survivor的兩個(gè)區(qū)是對稱的,沒先后關(guān) 系,所以同一個(gè)區(qū)中可能同時(shí)存在從Eden復(fù)制過來 對象,和從前一個(gè)Survivor復(fù)制過來的對象,而復(fù)制到年老區(qū)的只有從第一個(gè)Survivor去過來的對象。而且,Survivor區(qū)總有一個(gè)是空 的。
Tenured(年老代)
年老代存放從年輕代存活的對象。一般來說年老代存放的都是生命期較長的對象。
Perm(持久代)
用 于存放靜態(tài)文件,如今Java類、方法等。持久代對垃圾回收沒有顯著影響,但是有些應(yīng)用可能動(dòng)態(tài)生成或者調(diào)用一些class,例如Hibernate等, 在這種時(shí)候需要設(shè)置一個(gè)比較大的持久代空間來存放這些運(yùn)行過程中新增的類。持久代大小通過-XX:MaxPermSize=進(jìn)行設(shè)置。
jstat -gcutil ${pid} 毫秒數(shù)
S0和S1:Survivor區(qū)
E:Eden區(qū)
O:Young區(qū)
P:Permanent區(qū)
YGC:Young區(qū)GC的次數(shù)
YGCT:Young區(qū)GC的時(shí)間
FGC:FullGC的次數(shù)
FGCT:FullGC的時(shí)間
GCT:GC的時(shí)間消耗
詳細(xì)介紹參看http://www.cnblogs.com/zhguang/p/java-jvm-gc.html
總結(jié)
以上是生活随笔為你收集整理的java heap_javaHeap的组成及GC监控的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python怎么筛选excel数据_【I
- 下一篇: 【ES6(2015)】新的声明方式 le