为什么gradle 2.0这么慢?

时间:2016-04-06 04:36:04

标签: android-studio gradle android-gradle

我使用Gradle 2.0.0和Android Studio,一个空项目需要2分钟才能构建。它还在Windows 8.1下创建了100%的CPU使用率。

非常讨厌。更令人讨厌的是,正确的项目可能需要4-5分钟才能构建,并且它会减慢一切。

是什么导致这个?

2 个答案:

答案 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后,构建变得更快>

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 =真

相关问题