Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.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 jvm内存与操作系统显示的内存不一致_Java - Fatal编程技术网

Java jvm内存与操作系统显示的内存不一致

Java jvm内存与操作系统显示的内存不一致,java,Java,我使用以下说明启动java程序: java-Xms32m-Xmx32m-jarclient.jar 大约一小时后,我使用top命令查看内存,如下所示: PID USER PR NI VIRT RES SHR � %CPU %MEM TIME+ COMMAND

我使用以下说明启动java程序:
java-Xms32m-Xmx32m-jarclient.jar

大约一小时后,我使用top命令查看内存,如下所示:

PID USER      PR  NI    VIRT    RES    SHR �  %CPU %MEM     TIME+ COMMAND                                                                                                                                        
13710 hlkj      20   0 3456.8m 186.0m  16.5m S   0.0  1.2  13:22.03 java   
该工艺使用186.0m

然后我使用jconsole检查jvm的情况

使用堆(32M)+使用非堆(32M)+使用线程堆栈(28*1M)≈90米

那么剩下的90M内存去了哪里

jmap内容:

~$ jmap -heap 13710
Attaching to process ID 13710, please wait...
Debugger attached successfully.
Server compiler detected.
JVM version is 25.181-b13

using thread-local object allocation.
Parallel GC with 4 thread(s)

Heap Configuration:
   MinHeapFreeRatio         = 0
   MaxHeapFreeRatio         = 100
   MaxHeapSize              = 33554432 (32.0MB)
   NewSize                  = 11010048 (10.5MB)
   MaxNewSize               = 11010048 (10.5MB)
   OldSize                  = 22544384 (21.5MB)
   NewRatio                 = 2
   SurvivorRatio            = 8
   MetaspaceSize            = 21807104 (20.796875MB)
   CompressedClassSpaceSize = 1073741824 (1024.0MB)
   MaxMetaspaceSize         = 17592186044415 MB
   G1HeapRegionSize         = 0 (0.0MB)

Heap Usage:
PS Young Generation
Eden Space:
   capacity = 9961472 (9.5MB)
   used     = 7768720 (7.4088287353515625MB)
   free     = 2192752 (2.0911712646484375MB)
   77.9876708984375% used
From Space:
   capacity = 524288 (0.5MB)
   used     = 98304 (0.09375MB)
   free     = 425984 (0.40625MB)
   18.75% used
To Space:
   capacity = 524288 (0.5MB)
   used     = 0 (0.0MB)
   free     = 524288 (0.5MB)
   0.0% used
PS Old Generation
   capacity = 22544384 (21.5MB)
   used     = 13431544 (12.809318542480469MB)
   free     = 9112840 (8.690681457519531MB)
   59.578225778978926% used

7956 interned Strings occupying 621672 bytes.

Xmx
设置限制最大堆空间,即加载和运行java程序的空间;它由JVM管理。但是JVM本身并没有加载到堆中。(尽管JRE中的Java类将放在堆中,例如Java.lang.String)同样,Java8中的heap space和metaspace(PremGen)是两个不同的空间。堆空间用于对象,元空间用于在jmap输出中加载类文件。MetamapSize=21807104(20.796875MB)。此外,jconsole的非堆空间约为32M,包括元空间、代码缓存等。
Xmx
设置限制了最大堆空间,即加载和运行java程序的空间;它由JVM管理。但是JVM本身并没有加载到堆中。(尽管JRE中的Java类将放在堆中,例如Java.lang.String)同样,Java8中的heap space和metaspace(PremGen)是两个不同的空间。堆空间用于对象,元空间用于在jmap输出中加载类文件。MetamapSize=21807104(20.796875MB)。此外,jconsole的非堆大约为32M,包括元空间、代码缓存等。