Android Studio占用过多内存


175

我已经安装了Android Studio 1.0 RC2。已经安装了4GB的RAM,但是在启动Android Studio并启动Android Emulator之后,这两个对象仅使用了90%以上的物理内存。有什么办法可以减少这种内存使用?由于存在此内存问题,因此无法同时打开其他应用程序。 在此处输入图片说明


17
在4GB Windows开发计算机上使用Eclipse或Android Studio和仿真器将非常痛苦。我强烈建议您要么升级开发计算机的RAM(8GB或更多),要么在设备上进行测试(而不是仿真器),要么跳过IDE并使用普通的编辑器和命令行工具进行开发。
CommonsWare 2014年

2
我想您是根据发布的屏幕截图来判断Windows操作系统的。但是,哪个版本的Windows?另外,由于Android Studio仍处于起步阶段,因此会遇到很多问题。如果您不需要Gradle支持,则可以随时尝试使用Eclipse-多年来,IDE已经过尝试和测试,因此对于开发环境来说,它非常可靠-RAM是明智的选择。
ChuongPham

1
@CommonsWare您知道Linux PC是否也是如此吗?提前致谢。
2014年

4
@PPD:在Windows中,通过“ 管理工具”关闭不必要的服务| 服务选项。msconfig启动中转到并关闭不必要的应用程序选项卡中。关闭Windows中不必要的视觉效果。当您运行Android模拟器时,请启用“ 使用主机GPU”选项,特别是如果您有功能强大的图形卡。我有一台Windows 7开发PC,并且在任何一次仅使用2-2.5GB的RAM,其中包括:Windows 7,Eclipse,Mozilla Firefox(无附加组件)和我刚才提到的Windows自定义步骤。我也使用Fedora,它使用的内存比Windows还要少。
ChuongPham

3
观察一下:我可以看到您打开了一些Google Chrome浏览器标签。您可能会发现Firefox使用较少的RAM,因为它不使用每个浏览器选项卡的进程。
山姆

Answers:


223

我目前正在Windows 8.1计算机上运行Android Studio,并具有6 GB的RAM。

我发现在android studio中禁用VCS并使用外部程序来处理VCS很有帮助。您可以通过转到文件 -> 设置 -> 插件来禁用VCS 并禁用以下功能:

  • CVS整合
  • Git集成
  • 的GitHub
  • Google云端测试
  • Google Cloud Tools核心
  • 适用于Android Studio的Google云工具
  • hg4idea
  • 颠覆整合
  • 商业整合
  • 测试NG-J

18
不,零钱很小。
krivar 2015年

5
当您的项目配置有svn或github之类的任何存储库时,差异巨大。我的执行等待时间从> 3min减少到<1min。非常感谢您提供的帮助。
Er Kaushik Kajavadara '16

3
尽管我一直打开“ Git集成”,但这似乎可行并且有很大的不同。理想情况下,Android Studio应该将这些作为默认设置。
Mr-IDE

3
我将这种方法用于配备4GB内存和AMD X4 Cpu的HP 6005迷你机箱。在停用所有这些插件之后,我无法相信我的android studio开业得非常快。在开始android studio之前要花15秒,但现在要1秒。感谢
AN

2
还禁用Mercurial Integration,TestNG-J;
xiaoweiz

107

就我而言,有两种主要的内存占用来源:IDE和Gradle:

Android Studio(最大1.5GB)

IDE的JVM配置为具有最大堆大小。您可以在主界面的右下角看到此内容:

Android Studio显示725M最大堆大小

您可以通过编辑降低这种内存有关的设置.vmoptions文件。例如,我将最大堆大小更改为512MB:

-Xmx512m

不幸的是,我发现降低此值会增加Android Studio暂时冻结(可能是进行垃圾回收)的频率。

摇篮(最大1.5GB)

在开发一段时间后,Gradle也可以使用大量RAM。Windows只是显示为Java(TM) Platform SE Binary

Windows 8.1任务管理器显示“ Java(TM Platform SE二进制)”,使用1,460.5 MB的内存

您可以通过更改Gradle JVM选项来解决此问题。您可以通过编辑每个用户来执行此操作gradle.properties

  1. 打开 gradle.properties文件,如果不存在则创建它:
    • 视窗: %USERPROFILE%\.gradle\gradle.properties
    • Linux / Mac: ~/.gradle/gradle.properties
  2. 更新org.gradle.jvmargs属性,并在必要时创建它。我将其设置为:

    org.gradle.jvmargs=-Xmx256m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
    

对于最大堆大小设置为256MB(-Xmx256m)的小型项目,我没有注意到其构建性能的任何差异。

请注意,您可能需要重新启动Android Studio,以便杀死旧的 Gradle进程;否则,您可能最终会同时运行。

仿真器

关于模拟器占用大量RAM,屏幕截图显示该模拟器占用了约800MB。您可以选择要分配给模拟器的RAM数量:

  1. 编辑AVD
  2. 显示高级设置
  3. 降低RAM的价值

Android虚拟设备RAM配置


结合SoJexy的答案,大大提高了我计算机的性能。
乔什·拉森

这些技巧可以挽救生命!还有一个选项可以更改dex编译器使用的堆大小,从而进一步减少内存使用。详细信息:techzog.com/development/android-studio-high-ram-usage
Varun

1
.vmoptions文件中显示:*DO NOT* modify this file directly. If there is a value that you would like t$ please add it to your user specific configuration file. See http://tools.android.com/tech-docs/configuration但是,由于我的系统上似乎没有特定于用户的文件,并且网站也没有说明该文件的其他任何位置,因此我将采用这种解决方案。哦,而且:MaxPermSize将在某个时候被弃用。在终端中启动IDE时,它总是向我发出警告。
Zelphir Kaltstahl 2015年

1
@Zelphir,您使用的是哪个OS和Android Studio版本?我正在使用Windows,并且说明说该文件位于%USERPROFILE%,这是用户特定的。我不太擅长Linux,但是Mac和Linux指令也说该文件在下~,我想这是用户的主目录吗?如果文件不存在,也许您可​​以创建它。上面提到的文件说Instead, you can customize the attributes by creating your own .properties or .vmoptions files in the following directories.。您能告诉我是否可行,以便我更新答案吗?
山姆

3
很棒的建议!对于Gradle,我通过“编辑”以“整个用户”的方式解决了该问题~/.gradle/gradle.properties
Andrea Lazzarotto

50

您可以按照以下步骤加快Eclipse或Android Studio的工作速度:

  • 一次使用/打开单个项目
  • 每次在模拟器中运行应用程序后清理项目
  • 使用移动/外部设备代替模拟器
  • 使用一次后不要关闭模拟器,每次使用同一模拟器运行应用
  • 通过使用File-> Settings-> Plugins禁用VCS并禁用以下内容:
    1.CVS集成
    2.Git集成
    3.GitHub
    4.Google Cloud Tools for Android Studio
    5.Subversion集成

我还使用了安装了4 GB主内存的Android Studio,但是遵循这些说明确实可以提高我的Android Studio性能。


1
我禁用了列表中的所有内容。仍然在1.5GB的ram上使用相同的内存
Arshad

@ arshadkazmi42告诉我您PC的配置
KulArtist 2015年

i3、4GB RAM,500GB HDD
Arshad

13
我认为这完全是胡说八道,“ i3”是软件工艺失败的原因!
XMight

1
我的i3处理器想挑战您的> i3,您要接受这个挑战吗?没人会说i3会导致内存变慢或占用
过多

28

Android Studio最近发布了针对低内存机器的官方指南:指南

如果您在低于建议规格的计算机上运行Android Studio(请参阅系统要求),则可以自定义IDE以提高计算机的性能,如下所示:

  • 减小可用于Android Studio的最大堆大小:将Android Studio的最大堆大小减小到512Mb。

  • 更新Gradle和Gradle的Android插件:更新到Gradle和Gradle的Android插件的最新版本,以确保您利用性能的最新改进。

  • 启用节电模式:启用节电模式会关闭大量内存和电池密集型后台操作,包括错误突出显示和即时检查,自动弹出代码完成以及自动增量后台编译。要打开省电模式,请单击文件>省电模式。

  • 禁用不必要的lint检查:要更改在代码上运行的Android Studio的lint检查,请执行以下操作:单击“文件”>“设置”(在Mac上为Android Studio>“首选项”)以打开“设置”对话框。在左窗格中,展开“编辑器”部分然后单击检查。单击复选框以选择或取消选择适合于您的项目的皮棉检查。单击“应用”或“确定”保存更改。

  • 在物理设备上进行调试:与在物理设备上进行调试相比,在模拟器上进行调试要消耗更多的内存,因此您可以通过在物理设备上进行调试来提高Android Studio的整体性能。

  • 仅包括必要的Google Play服务作为依赖项:将Google Play服务作为项目中的依赖项包括在内,会增加所需的内存量。仅包括必要的依赖项,以提高内存使用率和性能。有关更多信息,请参阅将Google Play服务添加到您的项目。

  • 减小可用于DEX文件编译的最大堆大小:将用于DEX文件编译的javaMaxHeapSize设置为200m。有关更多信息,请参阅通过配置DEX资源来缩短构建时间

  • 不要启用并行编译:Android Studio可以并行编译独立的模块,但是,如果您的系统内存不足,则不应启用此功能。要检查此设置,请执行以下操作:单击文件>设置(在Mac上为Android Studio>首选项)以打开“设置”对话框。在左窗格中,展开“构建,执行,部署”,然后单击“编译器”。确保未选中“并行编译独立模块”选项。如果进行了更改,请单击“应用”或“确定”以使更改生效。

  • 为Gradle打开脱机模式:如果带宽有限,请打开脱机模式以防止Gradle在构建期间尝试下载缺少的依赖项。当离线模式开启时,如果您缺少任何依赖项,Gradle将会发出构建失败,而不是尝试下载它们。要打开脱机模式,请按照下列步骤操作:

    • 单击文件>设置(在Mac上为Android Studio>首选项)以打开“设置”对话框。

    • 在左窗格中,展开“构建,执行,部署”,然后单击“ Gradle”。

    • 在“全局Gradle设置”下,选中“脱机工作”复选框。

    • 单击“应用”或“确定”使更改生效。


15

我使用了上面Sam的所有建议,但是发现如上所述不再支持VM命令行选项。(使用时收到错误)

作为替代方案,我可以通过将以下行添加到“ gradle.properties”文件中来显着减少gradle

org.gradle.jvmargs=-Xms512m -Xmx1024m

从AS版本1.3开始,该文件与“ gradle.build”位于同一文件夹级别。

上面的配置是512兆的“内存堆栈”和1024兆的“内存堆”。

我在一个小型项目中使用两个内存大小均设置为256兆的设置进行了测试。如预期的那样,它限制了JVM的大小。在所有测试中,我重新启动了AS以强制JVM重新启动。

希望这将使其他处理此问题的人员免于获得“让您的计算机更好”的答复。:-)

迪尔伯


谢谢; 这在AS 1.3中对我有用!我在答案中更新了说明以涵盖此方法,因为在AS 1.3中还没有找到其他方法来执行此操作。
山姆

2

我有Android Studio 2.1.1 Bro,如果使用Android棉花糖,请使用genymotion模拟器更快。我的Ram是4gb。并且在Android Studio中安装了genymotion插件。您会看到不错的结果,而不是浪费时间启动android emualtor,它需要5分钟.genymotion 10至20秒的速度和更快的速度,所以我建议您使用genymotion。


3
就像它是免费的。
Ojonugwa Jude Ochalifu,2016年

Genymotion的性能并不快。是的,但是是的,它比ARM的启动速度更快,而与IntelX86和X64的android studio模拟器一样,启动速度也非常快。
Mahdi-Malv '17

2

为了减少延迟,我建议遵循以下步骤

我的电脑规格:2 GB RAM,处理器:intel core2 duo

首先杀死所有后台进程,如果您正在运行服务器或数据库,则可以使用以下命令首先将其停止

sudo服务apache2停止

sudo服务mysql停止

然后通过文件>省电模式在Android Studio中启用省电模式

它可能会禁用后台进程,然后工作室似乎运行良好


不明白为什么我们需要启用Power Save Mode
Morozov

Morozov,如果启用省电模式,它将杀死android studio的后台活动,因此它将改善其性能
Naveen

是的,省电模式停止了这些过程
Naveen

2

在低配置计算机上运行Android环境。

  1. 在浏览器中关闭不必要的Web选项卡
  2. 对于防病毒用户,请排除自动生成的生成文件夹
  3. Android Studio具有1.2 Gb的默认堆,可以减少到512 MB

帮助>编辑自定义VM选项

studio.vmoptions
 -Xmx512m

布局性能将加快

  1. 对于Gradle来说,Android Studio Mkae的核心组件之一肯定是现在3.0beta是最新的组件

以下提示可能会影响代码质量,因此请谨慎使用:

  1. Studio包含“ 电源安全模式”,当它打开时会关闭后台操作,这些操作包括lint,代码补全等。

  2. 您可以在需要时手动运行棉绒检查 ./gradlew lint

  3. 大多数人平均使用Android模拟器消耗2 GB的RAM,因此,如果可能的话,请使用实际的Android设备,这些将减少计算机上的资源负载。另外,您可以减少模拟器的RAM,这将自动减少计算机上的虚拟内存消耗。您可以在虚拟设备配置和高级设置中找到它。

  4. Gradle脱机模式是带宽受限用户禁用构建依赖项下载的功能。它将减少后台操作,这将有助于提高Android Studio的性能。

  5. Android studio提供了优化以并行编译多个模块。在低RAM的计算机上,此功能可能会对性能产生负面影响。您可以在编译器设置对话框中将其禁用。


“ studio.vmoptions -Xmx512m”对我来说杀死了Android studio。将不再打开“无法创建JVM:错误代码-1”。我该如何撤销此更改?
MeatPopsicle

1
万一其他人陷入同一个陷阱。您可以通过以下方法修复此问题:转到C:\ Users \ <用户名> \。AndroidStudio <version> \ config并查找.vmoptions文件。如果它与您刚刚添加的配置匹配,则可以安全删除它
MeatPopsicle



1

我不知道这是否是解决方案,但Invalidate Cache and Restart就我而言已解决了这个问题。我目前正在使用Android Studio 3.6


0

在系统上打开以下提及路径,然后删除所有的AVD(虚拟设备:模拟器)

C:\ Users {Username} .android \ avd

注意:-仅从android studio中删除模拟器不会删除其AVD抓取的所有空格。因此,从给定路径上方删除所有avd,然后根据需要创建新的模拟器。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.