《深入理解JAVA虚拟机》——自动内存管理机制(二)

129 阅读1分钟

image.png

image.png

image.png

image.png

image.png

各部分内存空间大小的参数

image.png

MetaSpace

JDK1.8后,取消了永久代,当类的元数据放在了MetaSpace,常量池放在了堆上。MetaSpace是堆外内存。垃圾回收时也会收集这部分内存。

参数

  • -XX:MetaspaceSize是分配给类元数据空间(以字节计)的初始大小(Oracle逻辑存储上的初始高水位,the initial high-water-mark ),此值为估计值。MetaspaceSize的值设置的过大会延长垃圾回收时间。垃圾回收过后,引起下一次垃圾回收的类元数据空间的大小可能会变大。
  • -XX:MaxMetaspaceSize是分配给类元数据空间的最大值,超过此值就会触发Full GC,此值默认没有限制,但应取决于系统内存的大小。JVM会动态地改变此值。

详细的MetaSpace的原理可以看官方文档和blog.csdn.net/shenchaohao…