gradle
Gradle 성능
수색…
빌드 프로파일 링
성능을 위해 Gradle 빌드를 튜닝하기 전에베이스 라인을 설정하고 빌드의 어느 부분이 가장 많은 시간을 소비하는지 파악해야합니다. 이렇게하려면 Gradle 명령에 --profile
인수를 추가 하여 빌드 를 프로파일 링하십시오 .
gradle --profile
./gradlew --profile
빌드가 완료되면 ./build/reports/profile/
아래의 빌드에 대한 HTML 프로파일 보고서가 다음과 같이 표시됩니다.
요약 옆의 탭을 클릭하면 시간이 소비 된 시간에 대한 자세한 분석을 볼 수 있습니다.
주문형으로 구성
빌드 프로파일 링에 프로젝트 구성에 많은 시간이 소요되는 경우 필요할 때 구성 옵션을 사용하면 성능이 향상 될 수 있습니다.
당신은 편집에 의해 수요 모드에서 구성을 활성화 할 수 있습니다 $GRADLE_USER_HOME/.gradle/gradle.properties
( ~/.gradle/gradle.properties
기본적으로), 및 설정 org.gradle.configureondemand
.
org.gradle.configureondemand=true
특정 프로젝트에 대해서만 활성화하려면 해당 프로젝트의 gradle.properties
파일을 대신 편집하십시오.
주문형으로 구성이 활성화 된 경우 모든 프로젝트를 앞에 구성하는 대신 Gradle은 실행중인 작업에 필요한 프로젝트 만 구성합니다.
주문형 모드 구성은 요청 된 작업과 관련된 프로젝트 만 구성하려고 시도합니다. 즉, 빌드에 참여하는 프로젝트의
build.gradle
파일 만 실행합니다. 이 방법을 사용하면 대규모 다중 프로젝트 빌드의 구성 시간을 줄일 수 있습니다. 장기적으로이 모드는 기본 모드가되며, 가능할 경우 Gradle 빌드 실행을위한 유일한 모드가됩니다.
Gradle 용 JVM 메모리 사용 매개 변수 조정
$GRADLE_USER_HOME/.gradle/gradle.properties
(기본적으로 ~/.gradle/gradle.properties
)를 편집하고 org.gradle.jvmargs
설정하여 Gradle 빌드 및 Gradle 데몬에 사용되는 메모리 사용 제한 (또는 다른 JVM 인수)을 설정하거나 늘릴 수 있습니다 org.gradle.jvmargs
.
특정 프로젝트에 대해서만이 제한을 구성하려면 해당 프로젝트의 gradle.properties
파일을 대신 편집하십시오.
Gradle 빌드 및 Gradle 데몬의 기본 메모리 사용 설정은 다음과 같습니다.
org.gradle.jvmargs=-Xmx1024m -XX:MaxPermSize=256m
이것은 1GB의 일반 최대 메모리 할당 (힙 크기)과 256MB의 영구 "내부"객체에 대한 최대 메모리 할당을 허용합니다. 이 크기에 도달하면 가비지 콜렉션이 발생하여 성능이 크게 저하 될 수 있습니다.
절약 할 메모리가 있다고 가정하면 다음과 같이 쉽게 이중화 할 수 있습니다.
org.gradle.jvmargs=-Xmx2024m -XX:MaxPermSize=512m
Xmx
증가가 더 이상 도움이되지 않을 때보 다 XX:MaxPermSize
더 빨리 늘리는 것이 더 이상 도움이되지 않습니다.
Gradle 데몬 사용
Gradle Daemon을 사용하여 빌드의 성능을 향상시킬 수 있습니다.
Gradle Daemon은 Gradle Framework를 초기화하고 실행하며 성능을 향상시키기 위해 프로젝트 데이터를 메모리에 캐시합니다.
단일 빌드의 경우
단일 빌드에서 데몬을 활성화하려면 --daemon
인수를 gradle
명령이나 Gradle Wrapper 스크립트에 전달하면됩니다.
gradle --daemon
./gradlew --daemon
프로젝트의 모든 빌드에 대해
프로젝트의 모든 빌드에 대해 데몬을 활성화하려면 다음을 추가 할 수 있습니다.
org.gradle.daemon=true
프로젝트의 gradle.properties
파일.
모든 빌드
Gradle Daemon을 기본적으로 활성화하려면 시스템에서 사용자 계정으로 만든 모든 빌드에 대해 $GRADLE_USER_HOME/.gradle/gradle.properties
(기본적으로 ~/.gradle/gradle.properties
)를 편집하고 다음 줄을 추가하십시오.
org.gradle.daemon=true
Mac / Linux / * nix 시스템의 단일 명령에서이 작업을 수행 할 수도 있습니다.
touch ~/.gradle/gradle.properties && echo "org.gradle.daemon=true" >> ~/.gradle/gradle.properties
또는 Windows :
(if not exist "%USERPROFILE%/.gradle" mkdir "%USERPROFILE%/.gradle") && (echo org.gradle.daemon=true >> "%USERPROFILE%/.gradle/gradle.properties")
데몬 비활성화
--no-daemon
인수를 사용하여 특정 빌드에 대한 데몬을 비활성화하거나 프로젝트의 gradle.properties
파일에 명시 적으로 org.gradle.daemon=false
를 설정하여 특정 프로젝트에 대해 --no-daemon
비활성화 할 수 있습니다.
데몬 정지
데몬 프로세스를 수동으로 중지하려면 운영 체제 작업 관리자를 통해 프로세스를 gradle --stop
하거나 gradle --stop
명령을 실행하십시오. --stop
스위치를 사용하면 Gradle이 명령 실행에 사용 된 것과 동일한 Gradle 버전의 실행중인 모든 데몬 프로세스가 종료되도록 요청합니다. 대개 데몬 프로세스는 * 3 시간 동안 사용하지 않으면 자동으로 종료됩니다.
Gradle 병렬 빌드
Gradle은 프로젝트 구조와 상관없이 기본적으로 한 번에 하나의 작업 만 실행합니다. --parallel
스위치를 사용하면 Gradle이 독립적 인 하위 프로젝트 (서로간에 암시 적 또는 명시 적 프로젝트 종속성이없는 프로젝트)를 병렬로 실행하여 해당 작업이있는 동안 동시에 여러 작업을 실행할 수 있습니다 다른 프로젝트.
병렬 모드로 프로젝트를 빌드하려면
gradle build --parallel
프로젝트의 gradle.properties 파일에 다음 설정을 추가하여 프로젝트의 기본값을 병렬로 빌드 할 수도 있습니다.
org.gradle.parallel=true
최신 Gradle 버전 사용
Gradle 팀은 Gradle 빌드의 여러 측면의 성능을 향상시키기 위해 정기적으로 작업합니다. Gradle의 이전 버전을 사용하고 있다면, 그 작업의 이점을 놓치고있는 것입니다. 어떤 종류의 영향이 있는지 보려면 Gradle의 최신 버전으로 업그레이드하십시오. 이렇게하면 Gradle의 작은 버전간에 아주 적은 일들이 깨지기 때문에 위험이 적습니다.
Gradle 래퍼의 등록 정보 파일은 프로젝트 폴더의 gradle/wrapper/
아래에 gradle/wrapper/
라고 gradle-wrapper.properties
. 해당 파일의 내용은 다음과 같습니다.
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-X.X.X.zip
수동으로 버전 번호 XXX
(현재 버전)을 YYY
(최신 버전)로 변경하고 다음에 래퍼를 실행할 때 새 버전이 자동으로 다운로드됩니다.