如果Xms5120m将jvm分配5G RAm

时间:2012-04-26 23:31:05

标签: java memory jvm

我们有一个java进程,它有这样的开始参数:-Xms5120m -Xmx5120M

jvm会在启动时分配5G RAM吗?

与-Xms1024m -Xmx5120M相比,这是一个好习惯吗?

[UPDATE]

即使我设置Xms5120M,它似乎也被忽略了。当进程启动时,任务管理器显示它只使用了大约2G RAM。那是为什么?

2 个答案:

答案 0 :(得分:0)

java只会分配当时所需的内容。当你告诉它你想要-Xmx5G告诉计算机最大值。而xms是最小系统内存。如果初始内存堆不超过5G,而是使用2G,则任务管理器只是告诉您2G内存正在使用但不显示您的分配。这表明你的内存堆没有消耗完整的5G分配内存。

答案 1 :(得分:0)

如果您真的希望立即初始化初始堆内存,您可以尝试-XX:+AlwaysPreTouch JVM选项:

  

在JVM初始化期间预先触摸Java堆。因此,堆的每个页面在初始化期间都是需求归零,而不是在应用程序执行期间递增。

http://www.oracle.com/technetwork/articles/java/vmoptions-jsp-140102.html