Why does the JVM consume less memory than -Xms specified?(为什么JVM消耗的内存比-Xms指定的少?)
问题描述
我的问题如题,通过搜索了解了一些知识:
My question is as the title, and I got some knowledge by searching:
linux 有共享内存如何测量一个应用程序的实际内存使用情况申请或流程?
JVM会保留Xms中设置的内存量-Xms JVM 是什么意思堆内存?
JVM will reserve the amount of memory setted in Xms What does the -Xms JVM mean in reference to heap memory?
但还是不知道为什么,有的可以帮忙吗?
But still don't know why, some on can offer some help?
这是我在 Ubuntu12.04(64bit) 上运行的测试 |JDK 1.7.0_04.顶部显示如下:
Here is my test run on Ubuntu12.04(64bit) | JDK 1.7.0_04. and top shows below:
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.请参阅此处了解更多信息.
You're looking at the resident memory - that is, the physical RAM consumed. See here for more info.
虚拟内存是应用程序消耗的内存,包括换出(到磁盘)的内存.您会看到与虚拟内存和您的 -Xms
设置有更密切的对应关系.
The virtual memory, however, is the memory consumed by your application, including the memory swapped out (to disk). You'll see there's a closer correspondance with the virtual memory and your -Xms
settings.
有关详细信息,请参阅 此 ServerFault 答案.
See this ServerFault answer for more info.
这篇关于为什么JVM消耗的内存比-Xms指定的少?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:为什么JVM消耗的内存比-Xms指定的少?


- Spring Boot连接到使用仲裁器运行的MongoDB副本集 2022-01-01
- Eclipse 插件更新错误日志在哪里? 2022-01-01
- Java包名称中单词分隔符的约定是什么? 2022-01-01
- Jersey REST 客户端:发布多部分数据 2022-01-01
- C++ 和 Java 进程之间的共享内存 2022-01-01
- 如何使用WebFilter实现授权头检查 2022-01-01
- Safepoint+stats 日志,输出 JDK12 中没有 vmop 操作 2022-01-01
- 将log4j 1.2配置转换为log4j 2配置 2022-01-01
- 从 finally 块返回时 Java 的奇怪行为 2022-01-01
- value & 是什么意思?0xff 在 Java 中做什么? 2022-01-01