我使用Gradle 2.0.0和Android Studio,一个空项目需要2分钟才能构建。它还在Windows 8.1下创建了100%的CPU使用率。
非常讨厌。更令人讨厌的是,正确的项目可能需要4-5分钟才能构建,并且它会减慢一切。
是什么导致这个?
答案 0 :(得分:21)
自2.0.0-rc3以来遇到同样的问题。有时在长时间构建(大约10分钟)后会出现gc overhead limit exceeded
错误。
<强> UPD:强> 它还在SSD上使用大约6 GB的磁盘空间。
进行下一次配置:
在应用的build.gradle
中:
dexOptions {
javaMaxHeapSize "4g"
}
gradle-wrapper.properties
中的:
org.gradle.configureondemand=true
org.gradle.daemon=true
org.gradle.parallel=true
UPD 2:
我想我已找到临时解决方案 - 我已关闭Instant Run
并添加了下一个配置:
gradle.properties
中的:
org.gradle.jvmargs=-Xms512m -Xmx2048m
org.gradle.daemon=true
org.gradle.parallel=true
build.gradle
中的:
dexOptions {
incremental true
javaMaxHeapSize "4g"
}
studio.vmoptions
中的:
-server
-Xms1G
-Xmx2G
-XX:MaxPermSize=450m
-XX:MetaspaceSize=512m
您可以在
中找到studio.vmoptions
Mac OS:
~/Library/Preferences/{FOLDER_NAME}/
Linux的:
~/.{FOLDER_NAME}/studio.vmoptions and/or ~/.{FOLDER_NAME}/studio64.vmoptions
视窗:
%USERPROFILE%\.{FOLDER_NAME}\studio.exe.vmoptions and/or %USERPROFILE%\.{FOLDER_NAME}\studio64.exe.vmoptions
UPD 3:我想,我发现为什么Android Studio会占用这么多磁盘空间。
每次gc overhead limit exceeded
错误后,Android Studio会在项目的根文件夹中创建文件java_pid<proccess_id_number_here>.hprof
。
它的大小约为1.2 Gb
,很多gc overhead limit exceeded
错误->
很多这些文件。你可以删除它们。
UPD 4 :在更新到Android Studio版本 2.1 并在maxProcessCount
dexOptions {
incremental true
maxProcessCount 4
javaMaxHeapSize "5g"
}
另外,我在gradle.properties
中增加了Gradle的最大堆大小:
org.gradle.jvmargs=-Xmx5120M
org.gradle.daemon=true
org.gradle.parallel=true
我仍在使用修改后的studio.vmoptions
文件,如上所述。
答案 1 :(得分:0)
在.gradle文件夹中创建一个名为gradle.properties的文件,并在该文件中添加以下行并重新启动工作室一次:
org.gradle.daemon =真
org.gradle.jvmargs = -Xmx2048m -XX:MaxPermSize = 512m -XX:+ HeapDumpOnOutOfMemoryError -Dfile.encoding = UTF-8
org.gradle.parallel =真
org.gradle.configureondemand =真