子牙精品課程手寫JVM小班五期
我們可以看到年輕代包括Eden區(qū)(對(duì)象剛被new出來的時(shí)候,放到該區(qū)),S0和S1,是幸存者1區(qū)和幸存者2區(qū),從名字可以看出,是當(dāng)發(fā)生YGC,沒有被任何其他對(duì)象所引用的對(duì)象將會(huì)從內(nèi)存中被清除,還被其他對(duì)象引用的則放到幸存者區(qū)。當(dāng)發(fā)生多次YGC,在S0、S1區(qū)多次沒有被清楚的對(duì)象,則會(huì)被移到老年代區(qū)域。當(dāng)老年代區(qū)域被占滿的時(shí)候,則會(huì)發(fā)送FullGC。
無論是YGC或是FullGC,都會(huì)導(dǎo)致stop-the-world,即整個(gè)程序停止一些事務(wù)的處理,只有GC進(jìn)程允許以進(jìn)行垃圾回收,因此如果垃圾回收時(shí)間較長(zhǎng),部分web或socket程序,當(dāng)終端連接的時(shí)候會(huì)報(bào)connetTimeOut或readTimeOut異常,
標(biāo)簽: