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