Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java NMT类提交vs Jstat压缩类空间_Java_Memory Management_Jvm_Jstat_Jcmd - Fatal编程技术网

Java NMT类提交vs Jstat压缩类空间

Java NMT类提交vs Jstat压缩类空间,java,memory-management,jvm,jstat,jcmd,Java,Memory Management,Jvm,Jstat,Jcmd,我正在调查OutOfMemoryError:压缩类空间问题。我认为,我找到了它的根本原因和解决方案(由Hibernate Validator方法调用的JAXBContext.newInstance():在用户提交的每个操作之后构建ValidatorFactory),但在我的研究中,我注意到了一件令人困惑的事情 我尝试运行jcmd VM.native_memory和jstat-gc来跟踪类提交大小和CCSU(压缩类空间使用): 及 我预计NMT中的“类提交”度量和jstat中的CCSU之间没有重大

我正在调查OutOfMemoryError:压缩类空间问题。我认为,我找到了它的根本原因和解决方案(由Hibernate Validator方法调用的JAXBContext.newInstance():在用户提交的每个操作之后构建ValidatorFactory),但在我的研究中,我注意到了一件令人困惑的事情

我尝试运行jcmd VM.native_memory和jstat-gc来跟踪类提交大小和CCSU(压缩类空间使用):

我预计NMT中的“类提交”度量和jstat中的CCSU之间没有重大区别,但jstat显示,相对于超过24MB的类提交,仅使用了约1,72MB的内存。因此,我生成了GC.class_统计数据,它显示KlassBytes大约为1738616b->1739mb-因此它与CCSU中显示的jstat值几乎相同。我还发现其余的元数据(如方法、常量等)占用了大约14,44MB(这与mmap:committed=14720KB中的值几乎相同,但我不知道这个数字是多少)


那么剩下的部分呢?NMT显示的数字到底是多少?

Class
部分显示了元空间和压缩类空间的合计数字。解释了元空间和压缩类空间之间的区别

演示文稿中的幻灯片


jstat度量标准
MC
MU
CCSC
CCSU
代表

  • 元空间容量
  • 使用的元空间
  • 压缩类空间容量
  • 使用的压缩类空间
中解释了提交、容量和使用之间的关系

因此,如本机内存跟踪所示提交的类与jstat度量相关,具有以下不等式:

Class Committed >= MC + CCSC >= MU + CCSU
但是,它们之间的差异可能很大


自JDK 10以来,本机内存跟踪报告显示了
Class
部分的详细分类:

-     Class (reserved=1073841KB, committed=28593KB)
            (classes #3967)
            (  instance classes #3694, array classes #273)
            (malloc=689KB #9228) 
            (mmap: reserved=1073152KB, committed=27904KB) 
            (  Metadata:   )
            (    reserved=24576KB, committed=24576KB)
            (    used=24131KB)
            (    free=445KB)
            (    waste=0KB =0.00%)
            (  Class space:)
            (    reserved=1048576KB, committed=3328KB)
            (    used=3003KB)
            (    free=325KB)
            (    waste=0KB =0.00%)
Class Committed >= MC + CCSC >= MU + CCSU
-     Class (reserved=1073841KB, committed=28593KB)
            (classes #3967)
            (  instance classes #3694, array classes #273)
            (malloc=689KB #9228) 
            (mmap: reserved=1073152KB, committed=27904KB) 
            (  Metadata:   )
            (    reserved=24576KB, committed=24576KB)
            (    used=24131KB)
            (    free=445KB)
            (    waste=0KB =0.00%)
            (  Class space:)
            (    reserved=1048576KB, committed=3328KB)
            (    used=3003KB)
            (    free=325KB)
            (    waste=0KB =0.00%)