为什么gradle 2.0这么慢? [英] Why is gradle 2.0 so slow?
问题描述
我在Android Studio中使用了Gradle 2.0.0,一个空的项目需要2分钟才能构建。它还在Windows 8.1下创建了100%的CPU使用率。
非常讨厌。更令人讨厌的是,一个合适的项目可能需要4-5分钟才能完成,并且会减慢一切。
这可能是什么原因造成的?
自从2.0.0-rc3以来遇到同样的问题。并且有时在长时间构建(大约10分钟)之后获得
gc开销限制超过
错误。 $ b UPD:
另外它在SSD上使用了大约6 GB的磁盘空间。
有下一个配置:
在应用程序的 build.gradle
中:
dexOptions {
javaMaxHeapSize4g
}
在 gradle- wrapper.properties
:
org.gradle.configureondemand = true
org.gradle。 daemon = true
org.gradle.parallel = true
UPD 2:
我认为我找到了临时解决方案 - 我已经关闭了 Instant Run
并添加了下一个配置:
$ p $
gradle.properties .gradle.jvmargs = -Xms512m -Xmx2048m
org.gradle.daemon = true
org.gradle.parallel = true
在 build.gradle
中:
dexOptions {
增量真正
javaMaxHeapSize4g
}
$ c studio.vmoptions
中的$ c>
:
-server
-Xms1G
-Xmx2G
-XX:MaxPermSize = 450m
-XX:MetaspaceSize = 512m
您可以在<:code> studio.vmoptions p>
Mac OS:
{FOLDER_NAME} /
Linux:
〜/。{FOLDER_NAME} /studio.vmoptions和/或〜/。{FOLDER_NAME} /studio64.vmoptions
Windows:
%USERPROFILE%\。{FOLDER_NAME} \studio.exe.vmoptions和/或%USERPROFILE%\。{FOLDER_NAME} \studio64.exe.vmoptions
UPD 3:我认为,我发现Android Studio为什么使用这么多的磁盘空间。
$ b 在每个 gc开销限制超过
错误之后,Android Studio会创建一个文件 java_pid< proccess_id_number_here> .hprof
在您的项目的根文件夹中。
它的大小约为 1.2 Gb
,大量的 gc开销限制超过了
错误 - >
很多这些文件。您可以删除它们。
UPD 4:更新到Android Studio版本后,版本变得更快了 2.1 并在 dexOptions
maxProcessCount > dexOptions {
incremental true
maxProcessCount 4
javaMaxHeapSize5g
}
另外,我在 gradle.properties
中增加了Gradle的最大堆大小:
org.gradle.jvmargs = -Xmx5120M
org.gradle.daemon = true
org.gradle.parallel = true
而且我仍然使用修改过的 studio.vmoptions
文件,如上所述。
I'm using Gradle 2.0.0 with Android Studio and an empty project takes 2 minutes to build. It also creates a 100% CPU usage under Windows 8.1.
Very annoying. Even more annoying that a proper project can take up to 4-5 minutes to build, and it slows everything down.
What could cause this?
Have the same problem since 2.0.0-rc3. And sometimes after long build (about 10 minutes) getting gc overhead limit exceeded
error.
UPD: Also it uses about 6 GB disk space on SSD.
Have the next configuration:
in app's build.gradle
:
dexOptions {
javaMaxHeapSize "4g"
}
in gradle-wrapper.properties
:
org.gradle.configureondemand=true
org.gradle.daemon=true
org.gradle.parallel=true
UPD 2:
I think I've found temporary solution - I've turned off Instant Run
and added next configs:
in the gradle.properties
:
org.gradle.jvmargs=-Xms512m -Xmx2048m
org.gradle.daemon=true
org.gradle.parallel=true
in the build.gradle
:
dexOptions {
incremental true
javaMaxHeapSize "4g"
}
in the studio.vmoptions
:
-server
-Xms1G
-Xmx2G
-XX:MaxPermSize=450m
-XX:MetaspaceSize=512m
You can find studio.vmoptions
in:
Mac OS:
~/Library/Preferences/{FOLDER_NAME}/
Linux:
~/.{FOLDER_NAME}/studio.vmoptions and/or ~/.{FOLDER_NAME}/studio64.vmoptions
Windows:
%USERPROFILE%\.{FOLDER_NAME}\studio.exe.vmoptions and/or %USERPROFILE%\.{FOLDER_NAME}\studio64.exe.vmoptions
UPD 3: I think, I've found why Android Studio uses so much disk space.
After every gc overhead limit exceeded
error Android Studio creates a file java_pid<proccess_id_number_here>.hprof
in your project's root folder.
It has size about 1.2 Gb
, a lot of the gc overhead limit exceeded
errors ->
a lot of those files. You can just delete them.
UPD 4: Builds became much faster, after updating to Android Studio version 2.1 and adding property maxProcessCount
in the dexOptions
dexOptions {
incremental true
maxProcessCount 4
javaMaxHeapSize "5g"
}
Also, I've increased the maximum heap size for the Gradle in the gradle.properties
:
org.gradle.jvmargs=-Xmx5120M
org.gradle.daemon=true
org.gradle.parallel=true
And I'm still using modified studio.vmoptions
file, as I've described above.
这篇关于为什么gradle 2.0这么慢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!