Подтвердить что ты не робот

Почему gradle 2.0 так медленно?

Я использую Gradle 2.0.0 с Android Studio, а пустой проект занимает 2 минуты. Он также создает 100% -ное использование ЦП в Windows 8.1.

Очень раздражает. Еще более раздражает то, что правильный проект может занять до 4-5 минут, и он замедляет все.

Что может быть причиной этого?

4b9b3361

Ответ 1

Имеет ту же проблему, что и 2.0.0-rc3. А иногда после долгого создания (около 10 минут) получаем ошибку gc overhead limit exceeded.

UPD: Также он использует около 6 ГБ дискового пространства на SSD.

У вас есть следующая конфигурация:

в приложении 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 версии 2.1 и добавления свойства maxProcessCount в dexOptions

dexOptions {
        incremental true
        maxProcessCount 4
        javaMaxHeapSize "5g"
    }

Кроме того, я увеличил максимальный размер кучи для Gradle в gradle.properties:

org.gradle.jvmargs=-Xmx5120M
org.gradle.daemon=true
org.gradle.parallel=true

И я все еще использую модифицированный файл studio.vmoptions, как я уже говорил выше.

Ответ 2

В .gradle Folder создайте файл с именем gradle.properties и добавьте ниже строки в этот файл и перезапустите студию один раз:

org.gradle.daemon = истина

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

org.gradle.parallel = истина

org.gradle.configureondemand = истина