0

我在 VM Windows 机器上运行 Wildfly 11,并且 jdk 1.8 JAVA_OPTS 在standalaone.conf.bat 中设置为

set "JAVA_OPTS=-Xms8g -Xmx8g -XX:MetaspaceSize=8g -XX:MaxMetaspaceSize=8g"

我在 WILDFLY_HOME/bin 目录中运行standalone.bat,其他所有内容都保留为默认值。

当我运行任务管理器时,我看到 JVM 分配的最大内存为 400m。不应该是8g吗?由于 xms 参数设置为 8g?任何人都知道在 TAsk 管理器中由 JVM 提供的内存会发生什么?谢谢。

4

1 回答 1

1

这与JVM有关。当您设置-XMS大小并且应用程序使用的内存小于 XMS 大小时,JVM 不会强制使用内存。例如带有 -XMS8g 的“Hello world”应用程序,该应用程序永远不会使用 8gb 内存。JVM一开始就保留了Xms指定的内存,但是保留区和使用区是不一样的。此外,保留不必在物理内存中,也可以在交换中。

如果您想查看此区域,您可以使用Windows 中的资源监视器查看。在 中打开内存选项卡Resouce Monitor。您将看到两个部分,CommitWorking Set。你可以在这里看到区别。

于 2019-08-01T05:44:25.223 回答