【问题标题】:JVM heap size not getting more than 1.6 GB for 64 bit JVM64 位 JVM 的 JVM 堆大小不超过 1.6 GB
【发布时间】:2017-06-05 09:52:41
【问题描述】:

我有一台 8 GB RAM 的 64 位机器,Windows 7。我使用的是 64 位 JVM。我仍然无法将最大堆大小设置为超过 1600 M。我已经阅读了 stackoverflow 上与此主题相关的几乎所有答案。

每当我尝试将最大堆设置为 -Xmx2048M 时,我都会得到:

VM 初始化时出错 无法为对象堆预留足够的空间 无法创建 Java 虚拟机。

我尝试使用_JAVA_OPTION 系统变量设置最大堆大小,也可以通过:

运行 -> 运行配置 -> 参数路径。

两次我都遇到同样的错误。 RAM 几乎是免费的。

出了什么问题?

【问题讨论】:

  • 试试 -Xmx2048m-Xmx2g(小写 m 和 g)
  • @mumpitz 这没什么区别。
  • @Kayaman 我记得曾经遇到过 jvm 不希望在此参数末尾使用大写字母的情况。不过,我不记得是因为旧版本还是其他原因。
  • 真的确定您使用的是 64 位 JVM 吗? 1600M 听起来很像 32 位 JVM 的典型限制。可以使用-showversion选项让JVM打印相关信息而不终止。
  • 你如何开始你的申请?

标签: java jvm heap-memory


【解决方案1】:

服务器 JVM 默认初始和最大堆大小

默认初始和最大堆大小在服务器 JVM 上的工作方式与在客户端 JVM 上的工作方式类似,只是默认值可以更高。在 32 位 JVM 上,如果有 4 GB 或更多的物理内存,默认的最大堆大小可以达到 1 GB。

在 64 位 JVM 上,默认的最大堆大小可以达到 32 GB,如果 有 128 GB 或更多的物理内存。

您始终可以通过直接指定这些值来设置更高或更低的初始堆和最大堆;请参阅下一节。

Oracle official documentation on Java 8 min/max heap

【讨论】:

    猜你喜欢
    • 2011-01-28
    • 2011-10-29
    • 1970-01-01
    • 2014-03-14
    • 2012-04-30
    • 2013-02-12
    • 2012-06-08
    • 2011-12-26
    • 1970-01-01
    相关资源
    最近更新 更多