Android studio 为什么Gradle2.0这么慢?
我在Android Studio中使用Gradle 2.0.0,构建一个空项目需要2分钟。它还可以在Windows 8.1下创建100%的CPU使用率 很烦人。更令人恼火的是,一个合适的项目可能需要4-5分钟来构建,而且它会减慢一切Android studio 为什么Gradle2.0这么慢?,android-studio,gradle,android-gradle-plugin,Android Studio,Gradle,Android Gradle Plugin,我在Android Studio中使用Gradle 2.0.0,构建一个空项目需要2分钟。它还可以在Windows 8.1下创建100%的CPU使用率 很烦人。更令人恼火的是,一个合适的项目可能需要4-5分钟来构建,而且它会减慢一切 这是什么原因造成的 自2.0.0-rc3以来出现了相同的问题。有时在长时间构建(大约10分钟)后,获取gc开销限制超过了错误 UPD: 此外,它在SSD上使用约6 GB的磁盘空间 具有下一个配置: 应用程序中的build.gradle: dexOptions {
这是什么原因造成的 自2.0.0-rc3以来出现了相同的问题。有时在长时间构建(大约10分钟)后,获取
gc开销限制超过了错误
UPD:
此外,它在SSD上使用约6 GB的磁盘空间
具有下一个配置:
应用程序中的build.gradle
:
dexOptions {
javaMaxHeapSize "4g"
}
dexOptions {
incremental true
javaMaxHeapSize "4g"
}
在gradle wrapper.properties
中:
org.gradle.configureondemand=true
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.jvmargs=-Xms512m -Xmx2048m
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.jvmargs=-Xmx5120M
org.gradle.daemon=true
org.gradle.parallel=true
UPD 2:
我想我已经找到了临时解决方案-我已经关闭了Instant Run
,并添加了下一个配置:
在gradle.properties
中:
org.gradle.configureondemand=true
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.jvmargs=-Xms512m -Xmx2048m
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.jvmargs=-Xmx5120M
org.gradle.daemon=true
org.gradle.parallel=true
在build.gradle
中:
dexOptions {
javaMaxHeapSize "4g"
}
dexOptions {
incremental true
javaMaxHeapSize "4g"
}
在studio.vmoptions
中:
-server
-Xms1G
-Xmx2G
-XX:MaxPermSize=450m
-XX:MetaspaceSize=512m
您可以在以下位置找到studio.vmoptions
:
Mac操作系统:
~/Library/Preferences/{FOLDER\u NAME}/
Linux:
~/.{FOLDER\u NAME}/studio.vmoptions和/或~/.{FOLDER\u NAME}/studio64.vmoptions
dexOptions {
incremental true
maxProcessCount 4
javaMaxHeapSize "5g"
}
窗口:
%USERPROFILE%\.{FOLDER\u NAME}\studio.exe.vmoptions和/或%USERPROFILE%\.{FOLDER\u NAME}\studio64.exe.vmoptions
dexOptions {
incremental true
maxProcessCount 4
javaMaxHeapSize "5g"
}
UPD3:我想,我已经找到了Android Studio使用如此多磁盘空间的原因
每次超过gc开销限制后,Android Studio都会在项目的根文件夹中创建一个文件java_pid.hprof
它的大小约为1.2GB
,很多gc开销限制超过了错误->
很多文件。你可以直接删除它们
UPD 4:升级到Android Studio 2.1版并在dexOptions
dexOptions {
incremental true
maxProcessCount 4
javaMaxHeapSize "5g"
}
此外,我还在Gradle.properties
中增加了Gradle的最大堆大小:
org.gradle.configureondemand=true
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.jvmargs=-Xms512m -Xmx2048m
org.gradle.daemon=true
org.gradle.parallel=true
org.gradle.jvmargs=-Xmx5120M
org.gradle.daemon=true
org.gradle.parallel=true
我仍在使用修改后的studio.vmoptions
文件,如上所述。在.gradle文件夹中创建一个名为gradle.properties的文件,并在该文件中添加以下行,然后重新启动studio一次:
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2048m-XX:MaxPermSize=512m-XX:+HeapDumpOnOutOfMemoryError-Dfile.encoding=UTF-8
org.gradle.parallel=true
org.gradle.configureondemand=true此处相同。。我一直觉得“我不应该升级”@breakline请分享你的电脑配置非常不同。。。谢谢。还发现当您设置parallel=true时,gradle会产生4-5个单独的JVM。这是一个糟糕的设计还是背后有原因?非常奇怪。只有当您的项目有多个模块时,使用org.gradle.parallel启用并行构建才有用。例如,您可能在同一个项目中有一个Android应用程序、一个Java库、一个Android项目库和一个Android Wear模块。当您启用并行构建时,可以同时构建一些模块,利用计算机中的所有核心。你自己设置maxProcessCount有什么意义吗?根据此站点,默认设置为4: