從1.3.1開始,可輕松訪問的對(duì)象在最后一次引用后將保持活動(dòng)一段時(shí)間。默認(rèn)值是堆中每個(gè)可用兆字節(jié)的生命周期的一秒。可以使用-XX:SoftRefLRUPolicyMSPerMB標(biāo)志調(diào)整此值?,該標(biāo)志接受表示毫秒的整數(shù)值。例如,要將值從一秒更改為2.5秒,請(qǐng)使用此標(biāo)志:
-XX:SoftRefLRUPolicyMSPerMB = 2500
Java HotSpot Server VM使用最大可能的堆大?。ㄊ褂?Xmx選項(xiàng)設(shè)置?)來計(jì)算剩余的可用空間。
Java Hotspot Client VM使用當(dāng)前堆大小來計(jì)算可用空間。
這意味著服務(wù)器VM的一般趨勢是增加堆而不是刷新軟引用,?-Xmx因此對(duì)軟引用何時(shí)進(jìn)行垃圾回收具有顯著影響。
另一方面,客戶端VM將更傾向于刷新軟引用而不是增加堆。
上述行為適用于1.3.1到Java SE6版本的Java HotSpot VM。但是,此行為不是VM規(guī)范的一部分,并且在將來的版本中可能會(huì)發(fā)生更改。同樣,-XX:SoftRefLRUPolicyMSPerMB不保證在任何給定版本中都存在該?標(biāo)志。
在1.3.1版之前,Java HotSpot VM在發(fā)現(xiàn)它們時(shí)清除了軟引用。
當(dāng)我定期打開-verbose:gc時(shí),我得到了很多完整的GC,我已經(jīng)調(diào)整了堆,它沒有任何區(qū)別,發(fā)生了什么?
如果您正在使用RMI,那么您可能會(huì)遇到分布式GC。此外,一些應(yīng)用程序正在添加顯式GC認(rèn)為它將使其應(yīng)用程序更快。幸運(yùn)的是,您可以使用1.3及更高版本中的命令行選項(xiàng)禁用此功能。試著?-XX:+DisableExplicitGC 隨著??-verbose:gc,看看是否有所幫助。
---------------------
作者:a_Ygygs_Dxdsr_XdMss
來源:CSDN
原文:https://blog.csdn.net/weixin_42749765/article/details/87450776
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接!