Android Studio - How to increase Allocated Heap Size

229,626

Solution 1

I looked at my Environment Variables and had a System Variable called _JAVA_OPTIONS with the value -Xms256m -Xmx512m, after changing this to -Xms256m -Xmx1024m the max heap size increased accordingly.

Solution 2

-------EDIT--------

Android Studio 2.0 and above, you can create/edit this file by accessing "Edit Custom VM Options" from the Help menu.

-------ORIGINAL ANSWER--------

Open file located at

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

Change the content to

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

Xmx specifies the maximum memory allocation pool for a Java Virtual Machine (JVM), while Xms specifies the initial memory allocation pool. Your JVM will be started with Xms amount of memory and will be able to use a maximum of Xmx amount of memory.

Save the studio.vmoptions file and restart Android Studio.

Note:

If you changed the heap size for the IDE, you must restart Android Studio before the new memory settings are applied. (source)

Solution 3

Or, you can go to your android-studio\bin folder and change these -Xmx and -Xms values in studio.exe.vmoptions or studio64.exe.vmoptions files (depending on which version you are running).

Solution 4

You should not edit any files in the IDE installation directory. Instead, you can customize the attributes by creating your own .properties or .vmoptions files in the following directories. (This has been possible on some platforms before, but it required you to copy and change the entire contents of the files. With the latest changes these properties are now additive instead such that you can set just the attributes you care about, and the rest will use the defaults from the IDE installation).

Note: As of Android Studio 2.0, you can create/edit this file by accessing the "Edit Custom VM Options" file from the Help menu.

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

enter image description here

Solution 5

I increased my memory following the next Google documentation:

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

By default Android Studio is assigned a max of 750Mb, I changed to 2048Mb.

I tried what google described but for me the only thing that it worked was to use an environment variable. I will describe what I did:

First I created a directory that I called .AndroidStudioSettings,

  • mkdir .AndroidStudioSettings

Then I created a file called studio.vmoptions , and I put in that file the following content:

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

Then I added the STUDIO_VM_OPTIONS environment variables in my .profile file:

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

Then I reload my .profile:

  • source ~/.profile

And finally I open Android Studio:

  • open /Applications/Android\ Studio.app

And now as you can see using the status bar , I have more than 2000 MB available for Android Studio:

enter image description here

You can customize your values according to your need in my case 2048Mb is enough.

UPDATE : Android Studio 2.0 let's you modify this file by accessing "Edit Custom VM Options" from the Help menu, just copy and paste the variables you might want to keep in order to increase it for everversion you might have on your box.

Share:
229,626
zafrani
Author by

zafrani

Updated on June 21, 2021

Comments

  • zafrani
    zafrani almost 3 years

    I've been using Android Studio for 3 months now and one of the apps I started on it has become fairly large. The memory usage indicated at the bottom right of the program says my allocated heap is maxed at 494M.

    enter image description here

    When I start to change the XML files my memory usage quickly reaches that cap and the IDE crashes with an Out Of Memory error like this.

    enter image description here

    I've tried to increase the heap size using this but so far there has been no effect.

    I've looked at dozens of articles and other questions on how to increase the heap size but none of their answers are working. No matter what I do to the VMOPTIONS or the IDE settings the heap size never increases. I believe I am editting the correct file for the VMOPTIONS because if I purposely give it an invalid command Android Studio complains about it and doesn't start.

    I'm using windows 7 - 64 bit and have 16GB RAM. Has anyone else had this problem with Android Studio? And were you able to fix it?

  • Yasir Ali
    Yasir Ali over 10 years
    There was no System Variable called _JAVA_OPTIONS. but i manually created new one and it works fine. thanx.
  • zafrani
    zafrani almost 10 years
    This didn't work for me because the _JAVA_OPTIONS variable was being used as the default value.
  • Marino
    Marino over 9 years
    Good, this works! I'm wondering if to increase the heap size is a good thing... I mean, it works and surely in certain cases is the right way, but is it always the right way? Or may there be better solutions? Thanks!
  • Raphael Royer-Rivard
    Raphael Royer-Rivard over 9 years
    Did exactly the same as you, I still have the Out of Memory errors
  • Raphael Royer-Rivard
    Raphael Royer-Rivard over 9 years
    Changed both options (vmoptions and _JAVA_OPTIONS) but I still have the error
  • zafrani
    zafrani over 9 years
    If you purposely enter a syntax error into the vmoptions does it crash the program when you restart it?
  • ExpensiveBelly
    ExpensiveBelly over 9 years
    Have you updated to the latest version of Android Studio? I'm using Canary Channel and I've got 1.0 RC 4
  • Raphael Royer-Rivard
    Raphael Royer-Rivard over 9 years
    No, I was on 0.8.14, but I found the cause of the memory leak. Creating a color named "light_gray" and using it in a layout file uses infinite memory... "light_grey" is ok though.
  • croc
    croc over 9 years
    I'm not sure, but I don't think it should. Also, may I ask why would you enter a syntax error in vmoptions on purpose?
  • Daniel Lubarov
    Daniel Lubarov about 9 years
    This works but now I get the firewall dialog every time I launch AS, I guess because touching an application file invalidated its signature - superuser.com/a/328802/79666
  • Daniel Lubarov
    Daniel Lubarov about 9 years
    (The firewall dialog is only an issue on OS/X AFAIK.)
  • Bhavesh Hirpara
    Bhavesh Hirpara about 9 years
  • Sagar Devanga
    Sagar Devanga almost 9 years
    is this problem also due to the heap size stackoverflow.com/questions/29148374/…
  • Alex Machado
    Alex Machado over 8 years
    Didn't work for me either, but it turns out Android Studio had let some Java processes hanging from previous executions, and they were all obviously still using a lot of memory.
  • RikMaxSpeed
    RikMaxSpeed over 8 years
    This fixed a problem for me on a very large project where Android Studio would run out of memory after 15mn whilst building the symbol map. I changed Xms to 1024m and Xmx to 4096 and the symbol map was built in under 30 sec - so the garbage collector must have been thrashing for a long time.
  • guy.gc
    guy.gc over 8 years
    Wouldn't this solution work only when opening AS from shell?
  • Mulgard
    Mulgard about 8 years
    but there is no file studio.vmoptions at the path you mentioned. they are under %AndroidStudioInstallationPath%\bin\studio.exe.vmoptions
  • GaRRaPeTa
    GaRRaPeTa about 8 years
    You should not change that file, but the one stated here: tools.android.com/tech-docs/configuration. For Mac: ~/Library/Preferences/{FOLDER_NAME}/studio.vmoptions
  • GaRRaPeTa
    GaRRaPeTa about 8 years
    This is the right answer. Others are obsolete or discouraged.
  • Paul Woitaschek
    Paul Woitaschek about 8 years
    This is a bad idea becasue that might change. As stated here: sites.google.com/a/android.com/tools/tech-docs/configuration use the Appropriate directory for a custom vmoptions.
  • COYG
    COYG about 8 years
    Where are you typing the commands such as export STUDIO_VM_OPTIONS=/Users/youruser/.AndroidStudioSettings/stu‌​dio.vmoptions in the terminal?
  • Thommy
    Thommy almost 8 years
    It is safer to use IntelliJs/Android Studios own function to do it: Open the IDE an click "Help" - > "Edit custom VM options"
  • m02ph3u5
    m02ph3u5 almost 8 years
    A little explanation would surely improve your answer.
  • JimCzek
    JimCzek over 7 years
    I had to add a grade.properties in order to set max heap size that was used when I debug my app. But I have to ask, why doesn't setting the studio.vmoptions as mentioned in the Android Studio configuration page not work as advertised? My concern is that I am doing something fundamentally wrong (but it sure doesn't look like it). (Thanks) I posted a detailed question at: stackoverflow.com/questions/40833031/…
  • Lasse Magnussen
    Lasse Magnussen over 7 years
    As noted by Lord Flash: As of Android Studio 2.0, you can create/edit this file by accessing "Edit Custom VM Options" from the Help menu.
  • Eselfar
    Eselfar almost 7 years
    Thx, it's very usefull. FYI, if you use the 64bits version, the file to edit is named studio64.exe.vmoptions.
  • twlkyao
    twlkyao about 6 years
    This will take effect until you "invalidate and restart'
  • CommonsWare
    CommonsWare over 5 years
    That last line is wrong -- Android Studio 3.2 crashes on startup with it there.
  • Umair
    Umair over 3 years
    @RikMaxSpeed, how much maximum have you obtained the heap size in your project. I am working on an app where I need around 1GB heap size for my static variables so the variables are available anytime but using largeHeap don't support that much storage size. It throws OutOfMemory around 600 MB which is the maximum memory android system provides my app at runtime
  • Abili Isaac
    Abili Isaac almost 3 years
    just comment out this line org.gradle.jvmargs=-Xmx2048m
  • Muhammad Sarim Mehdi
    Muhammad Sarim Mehdi about 2 years
    increasing xmx doesn't increase it! I still get the same error box