將堆的最小值-Xms參數與最大值-Xmx參數設置爲同樣便可避免堆自動擴java
展.工具
https://blog.csdn.net/pfnie/article/details/52766204?locationNum=13&fps=1blog
重點是確認內存中的對象是不是必要的,也就是要先分清楚究竟是出現了內存泄漏(Memory Leak)仍是內存溢出(Memory Overflow)。 若是是內存泄漏,可進一步經過工具查看泄漏對象到GC Roots的引用鏈。因而就能找到泄漏對象是經過怎樣的路徑與GC Roots相關 聯並致使垃圾收集器沒法自動回收它們的。掌握了泄漏對象的類型信息,以及GC Roots引用鏈的信息,就能夠比較準確地定位出泄 漏代碼的位置。 若是不存在泄漏,換句話說就是內存中的對象確實都還必須存活着,那就應當檢查虛擬機的堆參數(-Xmx與-Xms),與機器物理內 存對比看是否還能夠調大,從代碼上檢查是否存在某些對象生命週期過長、持有狀態時間過長的狀況,嘗試減小程序運行期的內存 消耗。
《深刻理解java虛擬機》生命週期