PermGen Space 和 MetaSpace 之间的区别。
javaserver side programmingprogramming
PermGen 是用于存储类数据(如静态变量、字节码等)的内存区域。默认情况下,为 PermGen 分配 64 Mb。可以使用 -XXMaxPermSize 进行调整。
在 Java 8 中,PermGen 方法区被 MetaSpace 取代。他们已将 permGem 移至本机操作系统中的单独内存,称为 MetaSpace。默认情况下,它可以自动增加其大小。在 MetaSpace 中,类可以在 JVM 的生命周期内加载和卸载。
Sr.序号 | 关键 | PermGen | MetaSpace |
---|---|---|---|
1 | 基本 | PermGen 是用于存储类数据(如静态变量、字节码等)的内存区域 | 在 Java 8 中,PermGen 方法区被 MetaSpace 取代 |
2 | 默认内存分配 | 默认情况下为 PermGen 分配 64 Mb | 默认情况下它可以自动增加其大小 |
3 | 调整内存标志 | 可以使用 -XXMaxPermSize 进行调整。 | 我们可以通过 -XX:MaxMetaspaceSize 限制内存的上限 |
4 | 内存区域 | 它是一个特殊的堆空间。 | 从 Java 8 开始,它现在是本机操作系统中单独的内存区域 |