2014-10-01 189 views
20

所以我遇到了内存分配问题。有时它起作用,有时它不起作用。我读过this thread,并多次尝试了这些建议。有时-Xms512m -Xmx768m有效,有时-Xms256m -Xmx512m。我厌倦了根据Build, Execution, Deployment > Build Tools > Gradle > Gradle VM选项设置在IntelliJ中调整此设置。有没有可以一劳永逸解决这个问题的设定?在Intellij IDEA中经常发生Gradle错误“无法为对象堆预留足够的空间”

我在我的Windows 7计算机上有16GB的RAM,我正在运行IntelliJ IDEA EAP 14 build 138.2210.3,64位版本。 Android Gradle生成插件v0.12。

我怀疑gradle没有在64位模式下运行,否则它会有〜7 GB的空闲内存可供使用。为什么它没有利用这个?

编辑:

我得到了同样的错误在的Visual Studio 2015年科尔多瓦5.1.1在Windows 10。 请参阅下面的解决方案。

回答

10

安装64位Java解决了这个问题对我来说

+0

此解决方案适用于Ionic 3.5.0和Windows10 – Hamed 2017-07-14 22:14:23

+1

@nilzor,JDK或JRE? – Krummelz 2017-07-17 06:56:57

0

在我来说,我有太多的东西打开。释放内存使其工作。

2

这也发生在我身上,它让我发疯。这可能是内存(内存)可用碎片。虽然你有足够的空闲内存,但没有连续的512MB可用块,它们都被分割成更小的块!这就是为什么你只能“有时”看到它。

有些东西值得尝试:

如果你是内存不足
  • 检查,尝试关闭其他应用程序。即使我的8GB内容仍然拥有3GB的免费空间,有时候也会发生这种情况!这3GB可以被碎片化,所有块都小于512MB [例如:如果你有-Xmx512m] ...重新启动是一种碎片整理你的内存的方式。或者关闭Firefox,这将释放一个演出;-)

  • 此外,令人惊讶的是,检查您的交换空间[可用磁盘空间]!取决于机器/ JVM/etc的实现。但是如果你的交换空间不足,而且你的内存不完整,这可能是另一个原因。

  • 将-Xmx降低到-Xms128m -Xmx512m以便更容易找到连续的空闲内存块[128m]。如果gradle确实最少需要512m,这可能不是一个好主意。鉴于我们正在谈论gradle,忽略这个要点(可能是其他案例/值得注意的一个有用的提示)。

  • 请仔细检查X毫秒/ XMX在〜/ .gradle/gradle.properties属性:org.gradle.jvmargs

  • 使用idea64.exe [64]如果你觉得想法是用错了JDK [在最新的Intellij IDEA [14.1.3截至这篇文章]中,进入“设置” - >“构建,执行,部署” - >“Gradle”:“使用默认包装器”并选择Gradle JVM,如果你认为它使用了错误的,你会在这里看到它。

  • 最后,这只是一个猜测而已:在上一个项目符号中,我想知道是否选择了“使用项目JDK”,如果这样可以更容易找到连续的内存。我不确定这是否意味着Gradle将使用intellij IDEA已经保留的内存块。因此,IDEA启动时,您只有一个进程而不是两个进程,并且可以预留更大的内存块。但我不知道这是正确的,如果这对建议的IntelliJ的选项...

我同意你的,我从来没有与任何IDEA内存问题[也没有任何问题可言]直到gradle整合出现。

9

虽然这个问题有点老,但我想提出问题的根源:JVM在启动时请求一整块内存。如果找不到,则会发生“无法保留...”错误。约翰·佩普写道:在IBM的devblog的enlighting一篇关于这个问题:https://www.ibm.com/developerworks/community/blogs/aimsupport/entry/why_wont_my_jvm_start_with_this_heap_size?lang=en

这解决了我的问题:

  • 变体:使用Java的64位版本,这样一来就给Java的一个更大的区域可能的连接空闲内存
  • 变体b:32位Java使用较小的XMX数量。在gradle.properties文件中,我只使用org.gradle.jvmargs=-Xmx150m,Gradle没有问题。
37

我的Windows 10得到了在的Visual Studio 2015年同样的错误与科尔多瓦5.1.1下。

为了解决这个问题,设置此环境变量:

_JAVA_OPTIONS=-Xmx512M 
  1. 右键点击启动按钮,打开“系统”
  2. 转到左侧
  3. 点击高级系统设置“环境变量...”按钮
  4. 在系统变量中,单击“新建...”
  5. 新变量名称:_JAVA_OPTIONS
  6. 新的变量值:-Xmx512M
  7. 单击确定
  8. 重新启动Visual Studio,所以变量拿起

This第三点我在正确的方向。我确实改变了一点点的指示,所以它们适合于Windows 10.

希望它能帮助别人!

+1

谢谢!这个答案刚刚帮助我使用新版Android Studio。 – racs 2015-12-06 06:42:47

+0

谢谢+1。这个答案在Windows上使用Apache Cordova时解决了类似的问题。 – Sabuncu 2017-01-02 21:22:37

+0

谢谢Bjoerg,+1, – 2017-01-24 15:10:15

相关问题