Intellij 偶尔无法为对象堆保留足够的空间

Posted

技术标签:

【中文标题】Intellij 偶尔无法为对象堆保留足够的空间【英文标题】:Intellij occasionally unable to reserve enough space for object heap 【发布时间】:2018-02-03 18:30:30 【问题描述】:

RESOLVED 检查下面的解决方案。

我正在使用 Intellij Idea 2017.2.2。以下是我的 intellij 规格。

我的 Intellij 只会偶尔在 maven 构建或 jboss 服务器启动失败时出现错误

Error occurred during initialization of VM
Could not reserve enough space for 1048576KB object heap

如果我要使用

的 vm args 运行 maven 构建

-Xms512m -Xmx1024m

构建将失败 10 次中的 9 次(不完全是每 10 次,而是随机失败)。但是在第 10 次它会起作用。我只需要一直按下安装按钮,直到它工作。

之前的一个主要问题是,如果我不指定 vm args,那么构建将进行到一半,然后由于 java 堆空间不足而失败。

对于我的 jboss 服务器(JBOSS6.4 - 7.5.0.Final redhat 21),可以观察到完全相同的行为,其中服务器在 10 次中有 9 次无法启动。然后随机启动。

规格

IntelliJ IDEA 2017.2.2

构建 #IU-172.3757.52,于 2017 年 8 月 14 日构建

授权给-----

订阅有效期至 2018 年 5 月 31 日

JRE:1.8.0_152-release-915-b10 amd64

JVM:JetBrains s.r.o 的 OpenJDK 64 位服务器虚拟机

Windows 7 6.1

我测试的内容

我从 Intellij 2017.1 升级到 2017.2 并且行为没有改变。

我也尝试在 Eclipse 上做同样的事情,但也没有帮助。

彻底重启 PC,然后关闭所有不必要的应用程序,打开 intellij 执行 maven 构建,但它失败了,但再点击几下,它就无法正常工作了。 (注意此时仅使用了 16 个中的 6gb,不可能是内存不足)

*编辑

这台电脑有 16 GB 的内存。虽然发生故障,但当时正在使用大约 9.5GB。

【问题讨论】:

购买更多内存... @Meo 这台 PC 有 16 GB 的内存,在持续出现故障时只使用了大约 9 GB,最坏的情况是始终可用 4 GB。同样在将我的内存升级到 16 GB 之前,它可以正常使用 8 GB 内存。虽然我怀疑这可能与系统有关,但内存可能不是问题。 尝试增加虚拟内存(页面文件)。另外,尝试关闭一些不必要的软件并使用一些 RAM 碎片整理程序(但这可能没用)。 ***.com/a/9304270/685796 我也试过了。我彻底重启了我的电脑,但行为没有改变。它会像现在一样工作,但只是“随机”。 【参考方案1】:

我的问题已通过安装 Visual C++ Redistributable Packages 得到解决: https://aka.ms/vs/16/release/vc_redist.x64.exe

【讨论】:

【参考方案2】:

我必须执行以下选项才能让它通过错误。

使用的规范:IDEA IntelliJ 2019.3.5(社区版)

    在 IntelliJ VM 选项中增加内存

    第 1 步: 转到帮助 -> 编辑自定义 VM 选项

    第 2 步:更改堆大小,如下所示

    通过设置 VM 选项以增加内存运行应用程序

    运行 -> 编辑配置

【讨论】:

【参考方案3】:

我通过更改 Intellij 中的构建设置解决了这个问题。 请按照以下步骤操作。

对于 SBT: 1. 转到文件 -> 设置 -> 构建,执行部署 -> sbt 2. 将最大堆大小 (MB) 的值更改为可用内存。前任。 512 (以前这个值是 1536,因此我遇到了问题)

对于 Maven: 1.转到文件->设置->构建,执行部署-> Maven->导入

    将导入程序的 VM 选项值更改为可用内存。前任。 -Xmx512m

【讨论】:

【参考方案4】:

最终我能够通过更新正确的 JDK 来解决这个问题。 我的项目选择了不正确的 JDK,因此运行的是 32 位而不是 64 位 JDK。

只需在文件 > 项目设置下添加正确的 JDK。

似乎我的项目以前从未需要这么多内存,但一旦需求上升,似乎需要 64 位。

【讨论】:

以上是关于Intellij 偶尔无法为对象堆保留足够的空间的主要内容,如果未能解决你的问题,请参考以下文章

无法为对象堆保留足够的空间:Android Studio

elasticsearch安装插件:无法为对象堆保留足够的空间

无法启动守护进程...无法为 2097152KB 对象堆保留足够的空间

Cordova 无法为 2097152KB 对象堆保留足够的空间

Java 拒绝启动 - 无法为对象堆保留足够的空间

无法为 grails 中的对象堆保留足够的空间