为什么JVM HeapMemoryUsage的初始值大于commit / max值?

Bru*_*_JL 6 java jvm heap-memory java-8

我有一个带有以下选项的应用程序:

-xms2g -xmx2g
Run Code Online (Sandbox Code Playgroud)

我发现init价值大于maxcommited价值。似乎init值包含元空间的大小。我搜索了javadoc,但没有找到答案。您能否为此提供代码/ javadoc参考?

提前致谢。

VisualVM屏幕截图

use*_*900 0

getHeapMemoryUsage将 init 描述为设置/定义值,而不是真正的总和

返回的内存使用量的used和commit大小是所有堆内存池的这些值的总和,而返回的内存使用量的init和max大小代表堆内存的设置,它可能不是所有堆内存的总和内存池。

您设置为 2g,等于 2147483648 作为您的初始化显示