1. 程式人生 > >JVM垃圾回收及記憶體溢位

JVM垃圾回收及記憶體溢位

一、Java JVM垃圾回收:


JVM的堆記憶體分為young generation、old generation兩部分,young generation劃分為Eden、From、To三個區間。新建物件使用Eden區,滿後進行young GC,young GC過程中物件在Eden、From、To區間進行轉移複製,無效物件將被清除。多次複製到的物件將被轉移至old generation,年老代滿後進行full GC。

二、Java JVM記憶體溢位:

在Tomcat的使用過程中可能會遇到以下3種記憶體溢位的報錯

(1)OutOfMemery heap space 可以通過JVM啟動引數進行設定,如-Xms256m -Xmx512m

(2)OutOfMemery PermGen space PermGen space用於類的載入,當工程較大載入的類很多會導致該報錯。可通過JVM啟動引數進行調整,如-XX:PermSize=64m、-XX:MaxPermSize=128m。

(3)StackOverflow 方法的層數過多會導致棧記憶體溢位,需要對方法進行修改。