我的问题如题,通过搜索得到了一些知识:
linux 有共享内存 How to measure actual memory usage of an application or process?
JVM 将保留 Xms 中设置的内存量 What does the -Xms JVM mean in reference to heap memory?
但还是不知道为什么,有大佬可以帮忙吗?
这是我在 Ubuntu12.04(64bit) 上的测试 | JDK 1.7.0_04。顶部显示如下:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4067 brian 20 0 5316m **262m** 7496 S 0 3.3 0:00.30 java -**Xms4096m** -Xmx4096m Test
4066 brian 20 0 3182m **256m** 7496 S 0 3.3 0:00.30 java -**Xms2048m** -Xmx2048m Test
4065 brian 20 0 2114m **252m** 7492 S 0 3.2 0:00.30 java -**Xms1024m** -Xmx1024m Test
4064 brian 20 0 1314m **76m** 7584 S 0 1.0 0:00.20 java -**Xms256m** -Xmx256m Test
4063 brian 20 0 1180m **51m** 7608 S 0 0.7 0:00.21 java -**Xms128m** -Xmx128m Test
最佳答案
您正在查看常驻 内存 - 即消耗的物理 RAM。参见 here了解更多信息。
但是,虚拟 内存是您的应用程序消耗的内存,包括换出(到磁盘)的内存。您会发现虚拟内存与您的 -Xms
设置有更紧密的对应关系。
参见 this ServerFault answer了解更多信息。
关于java - 为什么 JVM 消耗的内存比指定的 -Xms 少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12108706/