為什麼要廢棄永久代,引入元空間?
1.字串存在永久代中,現實使用中易出問題, 由於永久代記憶體經常不夠用或發生記憶體洩露,爆出異常 java.lang.OutOfMemoryError: PermGen
2.類及方法的資訊等比較難確定其大小,因此對於永久代的大小指定比較困難,太小容易出現永久代溢位,太大則容易導致老年代溢位。
3.永久代會為 GC 帶來不必要的複雜度,並且回收效率偏低。
1.字串存在永久代中,現實使用中易出問題, 由於永久代記憶體經常不夠用或發生記憶體洩露,爆出異常 java.lang.OutOfMemoryError: PermGen
2.類及方法的資訊等比較難確定其大小,因此對於永久代的大小指定比較困難,太小容易出現永久代溢位,太大則容易導致老年代溢位。
3.永久代會為 GC 帶來不必要的複雜度,並且回收效率偏低。