这是我从oracle网站获得的:
区域:HotSpot / gc
概要
The command line flags PermSize and MaxPermSize have been removed and are
ignored. If used on the command line a warning will be emitted for each.
Java HotSpot(TM) Server VM warning: ignoring option PermSize=32m; support
was removed in 8.0
Java HotSpot(TM) Server VM warning: ignoring option MaxPermSize=128m;
support was removed in 8.0
不相容的性质
source
答案 0 :(得分:4)
没有。当然,内存泄漏仍然存在。实际上大多数内存泄漏都出现在普通堆中,而不是出现在permgen / metaspace中,因此这种更改不会影响它们。例如,可以在静态字段中创建HashMap
并逐渐填充它而不删除元素。这样堆的消耗量就会不断增长。
同样将类数据从permgen移动到元空间并不意味着它不需要空间。它只是在堆外区域分配,可以通过MaxMetaspaceSize
选项(默认为无穷大)进行控制。这种变化主要是内部的(使JVM中的某些东西更容易)并且不会影响正常的程序员。它解决的唯一可见问题是,使用默认设置,当加载太多类时,您现在不太可能遇到问题。但是如果你有一个重要的类加载器泄漏,这对你没有帮助:你仍然受到你机器上的物理内存和交换大小的限制。