什么CompressedClassSpaceSize啊
CompressedClassSpaceSize和之间是什么关系MetaspaceSize?
元空间是用于存储类元数据的内存区域,元类是在解析.class文件时创建的内部JVM结构。
类元数据包括:
-XX:MaxMetaspaceSize 默认情况下是无限的。
当-XX:+UseCompressedClassPointersoption为ON(堆<32G的默认设置)时,类将从Metaspace移到称为Compressed Class Space的单独区域。这是为了使用32位值而不是64位来寻址VM类结构。
因此,压缩类空间包含Java类的内部表示形式,而元空间则包含所有其余的元数据:方法,常量池,注释等。
压缩类空间的大小受限制-XX:CompressedClassSpaceSize,默认情况下为1G。的最大可能值为-XX:CompressedClassSpaceSize3G。
非类元空间和压缩类空间是两个不相交的区域。MaxMetaspaceSize限制两个区域的承诺大小:
committed(Non-class Metaspace) + committed(Compressed Class Space) <= MaxMetaspaceSize
Run Code Online (Sandbox Code Playgroud)
如果MaxMetaspaceSize设置为小于CompressedClassSpaceSize,则后者会自动减小为
CompressedClassSpaceSize = MaxMetaspaceSize - 2*InitialBootClassLoaderMetaspaceSize
Run Code Online (Sandbox Code Playgroud)