Android Studio - 如何增加分配的堆大小

zaf*_*ani 111 crash android memory-management out-of-memory android-studio

我已经使用Android Studio 3个月了,我开始使用的其中一个应用程序变得相当大.程序右下方显示的内存使用情况表明我分配的堆最大值为494M.

在此输入图像描述

当我开始更改XML文件时,我的内存使用量很快达到上限,并且IDE崩溃时出现Out Of Memory错误.

在此输入图像描述

我试图用这个增加堆大小,但到目前为止没有任何影响.

我已经看了几十篇关于如何增加堆大小的文章和其他问题,但他们的答案都没有奏效.无论我对VMOPTIONS或IDE设置做什么,堆大小都不会增加.我相信我正在为VMOPTIONS编辑正确的文件,因为如果我故意给它一个无效的命令Android Studio抱怨它并且不启动.

我正在使用Windows 7 - 64位并拥有16GB RAM.Android Studio有没有其他人遇到此问题?你能解决它吗?

Wes*_*ley 126

打开位于 /Applications/Android\ Studio.app/Contents/bin/studio.vmoptions 将内容更改为的文件

-Xms128m
-Xmx4096m
-XX:MaxPermSize=1024m
-XX:ReservedCodeCacheSize=200m
-XX:+UseCompressedOops
Run Code Online (Sandbox Code Playgroud)

Xmx指定Java虚拟机(JVM)的最大内存分配池,同时Xms指定初始内存分配池.您的JVM将以Xms大量内存启动,并且可以使用最大Xmx内存量.

保存studio.vmoptions文件并重新启动Android Studio.

更多在这篇文章.

----------编辑----------

在Android Studio 2.0中,您可以通过访问"帮助"菜单中的"编辑自定义VM选项"来创建/编辑此文件.

  • 正如Lord Flash所述:从Android Studio 2.0开始,您可以通过访问"帮助"菜单中的"编辑自定义VM选项"来创建/编辑此文件. (9认同)
  • 这解决了我在一个非常大的项目中遇到的问题,即 Android Studio 在构建符号映射时会在 1500 万后耗尽内存。我将 Xms 更改为 1024m,将 Xmx 更改为 4096,并且符号映射在 30 秒内构建完成 - 因此垃圾收集器肯定已经抖动了很长时间。 (2认同)

zaf*_*ani 47

我查看了我的环境变量,并_JAVA_OPTIONS使用值调用了一个系统变量-Xms256m -Xmx512m,在将其更改为-Xms256m -Xmx1024m相应的最大堆大小后.

  • 没有名为_JAVA_OPTIONS的系统变量.但我手动创建新的,它工作正常.感谢名单. (9认同)

cro*_*roc 47

或者,你可以去你的android-studio\bin文件夹,并改变这些-Xmx和-Xms值studio.exe.vmoptionsstudio64.exe.vmoptions文件(取决于你正在运行的版本).

  • 这对我不起作用,因为_JAVA_OPTIONS变量被用作默认值。 (2认同)

mox*_*oxi 31

我在下一篇Google文档后增加了记忆力:

http://tools.android.com/tech-docs/configuration

默认情况下,Android Studio的最大分配为750Mb,我更改为2048Mb.

我尝试过google所描述的内容,但对我来说,唯一有用的是使用环境变量.我将描述我的所作所为:

首先,我创建了一个名为.AndroidStudioSettings的目录,

  • mkdir .AndroidStudioSettings

然后我创建了一个名为studio.vmoptions的文件,并在该文件中添加了以下内容:

-Xms256m 
-Xmx2048m 
-XX:MaxPermSize=512m 
-XX:ReservedCodeCacheSize=128m 
-XX:+UseCompressedOops 
Run Code Online (Sandbox Code Playgroud)

然后我在.profile文件中添加了STUDIO_VM_OPTIONS环境变量:

  • export STUDIO_VM_OPTIONS=/Users/youruser/.AndroidStudioSettings/studio.vmoptions

然后我重新加载我的.profile:

  • source ~/.profile

最后我打开Android Studio:

  • open /Applications/Android\ Studio.app

现在您可以看到使用状态栏,我有超过2000 MB可用于Android Studio:

在此输入图像描述

您可以根据自己的需要自定义您的值2048Mb即可.

更新:Android Studio 2.0允许您通过访问"帮助"菜单中的"编辑自定义VM选项"来修改此文件,只需复制并粘贴您可能要保留的变量,以便增加它可能在您的盒子上的永久性.


Tob*_*ias 26

您不应编辑IDE安装目录中的任何文件.相反,您可以通过在以下目录中创建自己的.properties或.vmoptions文件来自定义属性.(这在以前的某些平台上是可行的,但它需要你复制和更改文件的全部内容.通过最新的更改,这些属性现在是添加的,这样你可以只设置你关心的属性,其余的将使用IDE安装中的默认值).

注意:从Android Studio 2.0开始,您可以通过访问"帮助"菜单中的"编辑自定义VM选项"文件来创建/编辑此文件.

http://tools.android.com/tech-docs/configuration

在此输入图像描述


Ash*_*jan 11

如果您使用的是MAC BOOK,则此选项在应用程序内可用- > 右键单击Android Studio,然后选择显示包内容 - > bin.

在此输入图像描述

要么

打开 -e /Applications/Android\ Studio.app/Contents/bin/studio.vmoptions

然后增加Xmx价值

-Xms128m
-Xmx2048m
-XX:MaxPermSize=350m
-XX:ReservedCodeCacheSize=64m
-XX:+UseCodeCacheFlushing
-XX:+UseCompressedOops
Run Code Online (Sandbox Code Playgroud)

现在你的Android Studio将超级快.


Mar*_*coz 9

注意: 我现在这不是帖子的答案,但也许这对某些正在寻找的人有帮助.

如果这对您没有任何帮助,请尝试使用Mac,看看是否有帮助,在最新版本的Android Studio中,studio.vmoptions位于Applications文件夹中的AndroidStudio.app内.

所以右键单击或按住Ctrl键单击AndroidStudio.App,然后选择studio.vmoptions所在的show package content:

内容/斌/ studio.vmoptions

更换或更改它,您将获得所需的所有RAM.

在此输入图像描述 在此输入图像描述

问候.


Shi*_*din 9

Android Studio 3.1可以选择编辑自定义虚拟内存选项。

您可以转到Android Studio>帮助>编辑自定义VM选项

在此处输入图片说明

然后将下面的设置代码粘贴到studio64.exe.vmoptions文件并保存。

文件位置:“ \ Users \用户名\ .AndroidStudio3。** \ config \”

-Xms128m
-Xmx4096m
-XX:MaxPermSize=1024m
-XX:ReservedCodeCacheSize=200m
-XX:+UseCompressedOops
Run Code Online (Sandbox Code Playgroud)

  • 最后一行是错误的——Android Studio 3.2 在启动时崩溃。 (2认同)

小智 8

您可以尝试以下任何一种

1)更改 gradle.properties 文件并根据您的要求更改堆大小。

如果org.gradle.jvmargs=-Xmx2048M不够,则更改为给定的4096

org.gradle.jvmargs=-Xmx4096M 在此处输入图片说明

2) 从“帮助”菜单中“编辑自定义 VM 选项”。

它将打开 studio.vmoptions / studio64.exe.vmoptions 文件。

在此处输入图片说明 将内容更改为

-Xms128m

-Xmx4096m

-XX:MaxPermSize=1024m

-XX:ReservedCodeCacheSize=200m

-XX:+UseCompressedOops

保存文件并重新启动 Android Studio。


Cha*_*ham 6

现在有很多答案已经过时了.最近更改了Android Studio更改堆大小的所需方法.

用户现在应该在以下目录之一中创建自己的vmoptions文件;

视窗: %USERPROFILE%\.{FOLDER_NAME}\studio64.exe.vmoptions

苹果电脑: ~/Library/Preferences/{FOLDER_NAME}/studio.vmoptions

Linux的: ~/.{FOLDER_NAME}/studio.vmoptions and/or ~/.{FOLDER_NAME}/studio64.vmoptions

新创建的*.vmoptions文件的内容应该是:

-Xms128m
-Xmx750m
-XX:MaxPermSize=350m
-XX:ReservedCodeCacheSize=96m
-XX:+UseCompressedOops
Run Code Online (Sandbox Code Playgroud)

将RAM分配更改-XmX750m为另一个值.

完整说明可在此处找到:http: //tools.android.com/tech-docs/configuration


Hoq*_*dul 6

首先检查为您的 android studio 分配了多少内存以检查是否遵循以下步骤:

文件 -> 设置 -> 外观和行为 -> 外观

然后检查显示内存指示器选项,如下图红色突出显示的部分 在此处输入图片说明

在我的情况下,我的 RAM 是 12Gb,所以我为 android studio 6gb 分配了内存。要按照以下步骤进行编辑

帮助->编辑自定义虚拟机选项

-Xmx6g
Run Code Online (Sandbox Code Playgroud)

就我而言,我将其设置为 6gb,因为我的 pc ram 是 12 GB。由您决定要为您的 android studio 分配多少内存


Exp*_*lly 5

我尝试了_JAVA_OPTIONS东西,但对我来说仍然无效。

最后,对我有用的是:

  • 启动studio64.exe而不是studio.exe(我有64位计算机)。
  • 在“ studio64.exe.vmoptions”中添加/更改以下值:

-Xms2048m
-Xmx2048m
-XX:MaxPermSize=1024m
-XX:+CMSClassUnloadingEnabled
-XX:+CMSPermGenSweepingEnabled 
-XX:+HeapDumpOnOutOfMemoryError
-Dfile.encoding=utf-8
Run Code Online (Sandbox Code Playgroud)


Ham*_*han 5

在 Mac OSX 上,可以通过转到第一个菜单项Android Studio > 首选项 > 系统设置(左侧菜单)> 内存设置轻松更改堆大小,然后在对话框中更改堆大小。

在此输入图像描述


Geo*_*rge 5

这是您如何更改当前在 Android Studio 3.6.1 中的堆大小

在 Android Studio 中的 Windows 上:

  1. 选择文件 -> 设置(将显示下面的弹出窗口)

设置对话框

  1. 选择外观和行为
  2. 选择系统设置
  3. 选择内存设置

然后将 IDE Heap Size 设置更改为您想要的值

在 Mac 上:

  1. 选择 Android Studio
  2. 选择首选项

将出现相同的弹出窗口。但是,这一次在 Mac 上称为首选项。

按照与Windows版Android Studio相同的步骤调整堆大小希望Preferences对话框已经显示