【问题标题】:Android Studio - How to increase Allocated Heap SizeAndroid Studio - 如何增加分配的堆大小
【发布时间】:2013-09-10 16:01:18
【问题描述】:

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

当我开始更改 XML 文件时,我的内存使用量很快达到上限,并且 IDE 崩溃并出现类似这样的内存不足错误。

我尝试使用此方法增加堆大小,但到目前为止没有任何效果。

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

我使用的是 Windows 7 - 64 位并拥有 16GB 内存。 Android Studio 有其他人遇到过这个问题吗?你能修复它吗?

【问题讨论】:

标签: android memory-management crash out-of-memory android-studio


【解决方案1】:

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

Android Studio 2.0 及更高版本,您可以通过访问帮助菜单中的“编辑自定义 VM 选项”来创建/编辑此文件。

-------原始答案--------

打开文件位于

/Applications/Android\ Studio.app/Contents/bin/studio.vmoptions

将内容改为

-Xms128m
-Xmx4096m
-XX:MaxPermSize=1024m
-XX:ReservedCodeCacheSize=200m
-XX:+UseCompressedOops

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

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

注意:

如果您更改了 IDE 的堆大小,则必须重新启动 Android Studio,然后才能应用新的内存设置。 (source)

【讨论】:

  • 这解决了我在一个非常大的项目中的一个问题,即 Android Studio 在构建符号映射时会在 1500 万后耗尽内存。我将 Xms 更改为 1024m 并将 Xmx 更改为 4096,并且符号图在 30 秒内构建 - 所以垃圾收集器一定已经颠簸了很长时间。
  • 如 Lord Flash 所述:从 Android Studio 2.0 开始,您可以通过访问“帮助”菜单中的“编辑自定义 VM 选项”来创建/编辑此文件。
  • 谢谢,非常有用。仅供参考,如果您使用 64 位版本,要编辑的文件名为 studio64.exe.vmoptions。
  • @RikMaxSpeed,您在项目中获得的堆大小最大值是多少。我正在开发一个应用程序,我的静态变量需要大约 1GB 的堆大小,因此变量随时可用,但使用 largeHeap 不支持那么多存储大小。它会抛出大约 600 MB 的 OutOfMemory,这是 android 系统在运行时为我的应用程序提供的最大内存
【解决方案2】:

我查看了我的环境变量并有一个名为_JAVA_OPTIONS 的系统变量,其值为-Xms256m -Xmx512m,在将其更改为-Xms256m -Xmx1024m 后,最大堆大小相应增加。

【讨论】:

  • 没有名为 _JAVA_OPTIONS 的系统变量。但我手动创建了一个新的,它工作正常。谢谢。
  • 好,这行得通!我想知道增加堆大小是否是一件好事......我的意思是,它有效并且在某些情况下肯定是正确的方式,但它总是正确的方式吗?或者可能有更好的解决方案?谢谢!
  • 这个问题也是因为堆大小stackoverflow.com/questions/29148374/…
  • 对我也不起作用,但事实证明 Android Studio 让一些 Java 进程挂起之前的执行,而且它们显然仍在使用大量内存。
  • 只需注释掉这一行 org.gradle.jvmargs=-Xmx2048m
【解决方案3】:

或者,您可以转到 android-studio\bin 文件夹并更改 studio.exe.vmoptionsstudio64.exe.vmoptions 文件中的这些 -Xmx 和 -Xms 值(取决于您运行的版本)。

【讨论】:

  • 这对我不起作用,因为 _JAVA_OPTIONS 变量被用作默认值。
  • 更改了两个选项(vmoptions 和 _JAVA_OPTIONS),但我仍然有错误
  • 如果您故意在 vmoptions 中输入语法错误,是否会在您重新启动时导致程序崩溃?
  • 我不确定,但我认为不应该。另外,请问为什么要故意在vmoptions中输入语法错误?
【解决方案4】:

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

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

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

【讨论】:

    【解决方案5】:

    按照下一个 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 
    

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

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

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

    • source ~/.profile

    最后我打开了 Android Studio:

    • open /Applications/Android\ Studio.app

    现在你可以看到使用 status bar ,我有超过 2000 MB 可用于 Android Studio:

    您可以根据需要自定义值,在我的情况下 2048Mb 就足够了。

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

    【讨论】:

    • 这个解决方案不是只有在从shell打开AS时才有效吗?
    • 你在终端哪里输入export STUDIO_VM_OPTIONS=/Users/youruser/.AndroidStudioSettings/studio.vmoptions等命令?
    【解决方案6】:

    如果您使用的是 MAC BOOK,则此选项在 Applications -> 右键单击 Android Studio 中可用,然后选择 Show Package内容 -> bin

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

    然后增加Xmx

    -Xms128m
    -Xmx2048m
    -XX:MaxPermSize=350m
    -XX:ReservedCodeCacheSize=64m
    -XX:+UseCodeCacheFlushing
    -XX:+UseCompressedOops
    

    现在您的 Android Studio 将超级快。

    【讨论】:

      【解决方案7】:

      Android Studio 3.1 具有编辑自定义虚拟内存选项的选项。

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

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

      文件位置:“\Users\username\.AndroidStudio3.**\config\”

      -Xms128m
      -Xmx4096m
      -XX:MaxPermSize=1024m
      -XX:ReservedCodeCacheSize=200m
      -XX:+UseCompressedOops
      

      【讨论】:

      • 最后一行是错误的——Android Studio 3.2 在启动时崩溃。
      【解决方案8】:

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

      如果这些都不适合您,请在 Mac 上尝试一下,看看是否对您有帮助,在最新版本的 Android Studio 中,studio.vmoptions 位于您的 Applications 文件夹中的 AndroidStudio.app 内。

      所以右键单击或 ctrl 单击您的 AndroidStudio.App,然后选择显示 studio.vmoptions 所在的包内容:

      目录/bin/studio.vmoptions

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

      问候。

      【讨论】:

      【解决方案9】:

      您可以尝试以下任何一种方法

      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。

      【讨论】:

        【解决方案10】:

        我尝试了 _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

        【讨论】:

        • 和你一模一样,我还是有内存不足的错误
        • 您更新到最新版本的 Android Studio 了吗?我正在使用 Canary 频道,我有 1.0 RC 4
        • 不,我在 0.8.14,但我找到了内存泄漏的原因。创建一个名为“light_gray”的颜色并在布局文件中使用它会使用无限内存......不过“light_grey”是可以的。
        【解决方案11】:

        现在有很多答案已经过时了。更改 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
        

        要增加 RAM 分配,请将 -XmX750m 更改为另一个值。

        完整的说明可以在这里找到: http://tools.android.com/tech-docs/configuration

        【讨论】:

        • 但是您提到的路径中没有文件studio.vmoptions。他们在%AndroidStudioInstallationPath%\bin\studio.exe.vmoptions
        • 这是正确的答案。其他人已经过时或不鼓励。
        【解决方案12】:

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

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

        然后检查显示内存指示器选项,如下图红色突出显示的部分

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

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

        -Xmx6g
        

        在我的情况下,我将它设置为 6gb,因为我的 pc ram 是 12gb。由您决定要为您的 android studio 分配多少内存

        【讨论】:

          【解决方案13】:

          这是在 Android Studio 3.6.1 中更改当前堆大小的方式

          在 Android Studio 中的 Windows 上:

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

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

          然后将 IDE 堆大小设置更改为您想要的值

          在 Mac 上:

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

          将出现相同的弹出窗口。然而,这一次在 Mac 上它被称为 Preferences。

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

          【讨论】:

            【解决方案14】:

            在 Windows 7 上,[INSTALL-LOCATION]\bin 的配置文件似乎被忽略了。根据以下谷歌文档,要修改的文件应该在这里:%USERPROFILE%\.AndroidStudio\studio[64].exe.vmoptions

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

            奇怪的是,从开发人员网站全新安装 Android Studio 1.1 后没有这样的文件。它们位于旧的(被忽略的)位置。一旦我复制文件(在我的情况下为studio.exe.vmoptions)并修改它,更改就会得到尊重。

            然而,乐趣并不止于此。 -Xmx 有一个上限,这可能与系统中的内存量有关。我刚刚将我的机器内存从 4Gb 提升到 16Gb,并假设我可以将 -Xmx 设置为 2048m,但我发现如果我将其设置为大于 1500m, 的任何值,Android Studio 将在没有任何指示的情况下自动启动失败至于为什么。我有更多的内存,所以看看我是否可以在那个时候增加值会很有趣。

            我希望这些附加信息对您有所帮助。虽然上述所有回复在某一点上无疑是正确的(并且在某些环境中可能仍然如此),但我发现这是增加 AS 对我使用的内存的唯一方法。

            【讨论】:

              【解决方案15】:

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

              【讨论】:

                【解决方案16】:

                打开 studio.vmoptions 并更改 JVM 选项

                studio.vmoptions 位于 /Applications/Android\ Studio.app/bin/studio.vmoptions (Mac OS)。在我的机器上,它看起来像

                -Xms128m
                -Xmx800m
                -XX:MaxPermSize=350m
                -XX:ReservedCodeCacheSize=64m
                -XX:+UseCodeCacheFlushing
                -XX:+UseCompressedOops
                

                改成

                -Xms256m
                -Xmx1024m
                -XX:MaxPermSize=350m
                -XX:ReservedCodeCacheSize=64m
                -XX:+UseCodeCacheFlushing
                -XX:+UseCompressedOops
                

                然后重启 Android Studio

                查看更多Android Studio website

                【讨论】:

                  【解决方案17】:

                  我在 Windows 7/8(64 位)上找到了 Android Studio 1.1.0:

                  [INSTALL_DIR]\bin\studio64.exe.vmoptions 被使用(如果存在),否则它总是回退到%USERPROFILE%.\AndroidStudio\studio[64].exe.vmoptions

                  如果您想从%USERPROFILE%.\AndroidStudio\studio[64].exe.vmoptions管理设置,只需删除安装目录中的设置即可。

                  【讨论】:

                    【解决方案18】:

                    进入 Gradle 脚本 -> local.properties 并粘贴此

                    `org.gradle.jvmargs=-XX\:MaxHeapSize\=512m -Xmx512m`
                    

                    ,如果您想将其更改为 512。希望它有效!

                    【讨论】:

                      【解决方案19】:

                      您不应该修改 bin/studio.exe.vmoptions 文件,这将在应用更新补丁时进行验证。

                      解决方案在这里http://tools.android.com/tech-docs/configuration

                      将该文件复制到以下位置,然后将 -Xmx1280m 更改为您想要的任何内容。

                      窗口:

                      %USERPROFILE%\.{FOLDER_NAME}\studio.exe.vmoptions 和/或 %USERPROFILE%\.{FOLDER_NAME}\studio64.exe.vmoptions

                      %USERPROFILE%\.{FOLDER_NAME}\idea.properties

                      苹果机:

                      ~/Library/Preferences/{FOLDER_NAME}/studio.vmoptions ~/Library/Preferences/{FOLDER_NAME}/idea.properties

                      Linux:

                      ~/.{FOLDER_NAME}/studio.vmoptions 和/或 ~/.{FOLDER_NAME}/studio64.vmoptions

                      ~/.{FOLDER_NAME}/idea.properties

                      【讨论】:

                      • 使用IntelliJs/Android Studios自带功能更安全:打开IDE点击“帮助”->“编辑自定义VM选项”
                      【解决方案20】:

                      在我使用 XML 的任何时候都遇到过 XmsXmx 内存不足的问题。我也尝试增加这个内存,结果发现它再次发生需要更长的时间。

                      在变得非常沮丧并几乎决定将我所有当前的项目都转换回 Eclipse(我不想这样做)之后,我找出了导致它的原因,并且能够重复这个失败并每次都阻止它。

                      在(文本视图)中编辑 XML 并使用“预览”渲染视图时,每次都会导致内存丢失。关闭“预览”并使用“设计”选项卡仅渲染屏幕,我可以整天使用 Android Studio,而不会崩溃。

                      我希望这个问题可以得到很好的解决,因为在编辑 XML 时使用“预览”渲染会非常好,但是我很高兴我可以继续使用 Android Studio。

                      【讨论】:

                        【解决方案21】:

                        可以帮助遇到此问题的人:

                        我编辑了studio64.exe.vmoptions文件,但保存失败。

                        于是我用Notepad++在Run as Administrator模式下打开了这个文件,然后保存成功。

                        【讨论】:

                          【解决方案22】:

                          -Xms256m 
                          -Xmx2048m 
                          -XX:MaxPermSize=512m 
                          -XX:ReservedCodeCacheSize=128m 
                          -XX:+UseCompressedOops 

                          【讨论】:

                          • 一点解释肯定会改善你的答案。
                          【解决方案23】:

                          如果通过更改或创建 .studio.exe.vmoptions 不起作用,则尝试更改 gradle.properties 文件并根据您的要求更改堆大小。

                          在我的带有 4Gb RAM 和 Android Studio 2.2 的 Windows 7 上,它确实对我有用。

                          正常工作且没有错误并显示“Gradle Sync 完成”

                          【讨论】:

                          • 我必须添加一个grade.properties 以设置调试应用程序时使用的最大堆大小。但是我不得不问,为什么没有像Android Studio配置页面中提到的那样设置studio.vmoptions不能像宣传的那样工作?我担心的是我在做一些根本错误的事情(但它肯定看起来不像)。 (谢谢)我在stackoverflow.com/questions/40833031/… 发布了一个详细的问题
                          【解决方案24】:

                          在 Ubuntu 上,这很简单,点击 Help > Edit Custom VM Options . IDE 询问是否为您创建文件,单击确定。

                          创建一个空的 studio64.vmoptions 文件并粘贴以下变量:

                          -Xms128m
                          -Xmx4096m
                          -XX:MaxPermSize=1024m
                          -XX:ReservedCodeCacheSize=200m
                          -XX:+UseCompressedOops
                          

                          重启IDE,Max Heap Size增加到:4,062M

                          【讨论】:

                            猜你喜欢
                            • 1970-01-01
                            • 2014-10-15
                            • 2020-08-28
                            • 2016-04-23
                            • 2015-01-04
                            • 2011-05-06
                            • 1970-01-01
                            • 2012-07-01
                            • 1970-01-01
                            相关资源
                            最近更新 更多