Szukaj…


Profilowanie kompilacji

Zanim zaczniesz dostrajać kompilację Gradle pod kątem wydajności, powinieneś ustalić linię bazową i dowiedzieć się, które części kompilacji zajmują najwięcej czasu. Aby to zrobić, możesz profilować swoją kompilację , dodając argument --profile do polecenia Gradle:

gradle --profile
./gradlew --profile

Po zakończeniu kompilacji zobaczysz raport profilu HTML dla kompilacji w ./build/reports/profile/ , wyglądający mniej ./build/reports/profile/ tak:

Przykład raportu profilu HTML

Klikając karty obok Podsumowanie , możesz zobaczyć bardziej szczegółowy podział miejsca spędzonego czasu.

Konfiguruj na żądanie

Jeśli profilowanie kompilacji wskazuje na znaczne poświęcenie czasu na konfigurowanie projektów , opcja Konfiguruj na żądanie może poprawić wydajność.

Możesz włączyć tryb Konfiguruj na żądanie, edytując $GRADLE_USER_HOME/.gradle/gradle.properties ( $GRADLE_USER_HOME/.gradle/gradle.properties ~/.gradle/gradle.properties ) i ustawiając org.gradle.configureondemand .

org.gradle.configureondemand=true

Aby włączyć go tylko dla określonego projektu, edytuj plik gradle.properties tego projektu.

Jeśli opcja Konfiguruj na żądanie jest włączona, zamiast konfigurować wszystkie projekty z góry, Gradle będzie konfigurować tylko projekty potrzebne do uruchomienia zadania.

Z podręcznika Gralde :

Tryb konfiguracji na żądanie próbuje skonfigurować tylko projekty odpowiednie dla żądanych zadań, tj. build.gradle plik build.gradle projektów, które uczestniczą w kompilacji. W ten sposób można skrócić czas konfiguracji dużej kompilacji złożonej z wielu projektów. W dłuższej perspektywie tryb ten stanie się trybem domyślnym, być może jedynym trybem wykonywania kompilacji Gradle.

Dostrajanie parametrów wykorzystania pamięci JVM dla Gradle

Możesz ustawić lub zwiększyć limity wykorzystania pamięci (lub inne argumenty JVM) używane dla kompilacji Gradle i demona Gradle, edytując $GRADLE_USER_HOME/.gradle/gradle.properties ( $GRADLE_USER_HOME/.gradle/gradle.properties ~/.gradle/gradle.properties ) i ustawiając org.gradle.jvmargs .

Aby skonfigurować te limity tylko dla określonego projektu, dokonaj edycji pliku gradle.properties tego projektu.

Domyślne ustawienia użycia pamięci dla kompilacji Gradle i demona Gradle to:

org.gradle.jvmargs=-Xmx1024m -XX:MaxPermSize=256m

Pozwala to na ogólny maksymalny przydział pamięci (wielkość sterty) 1 GB i maksymalny przydział pamięci dla stałych „wewnętrznych” obiektów 256 MB. Po osiągnięciu tych rozmiarów następuje odśmiecanie, co może znacznie obniżyć wydajność.

Zakładając, że masz pamięć do stracenia, możesz łatwo podwoić je w następujący sposób:

org.gradle.jvmargs=-Xmx2024m -XX:MaxPermSize=512m

Pamiętaj, że przestaniesz widzieć korzyści wynikające ze zwiększenia XX:MaxPermSize wcześniej niż gdy wzrost Xmx przestanie być korzystny.

Użyj demona Gradle

Możesz włączyć Demona Gradle, aby poprawić wydajność swoich kompilacji.

Demon Gradle utrzymuje inicjalizację i działanie środowiska Gradle Framework oraz buforuje dane projektu w pamięci w celu poprawy wydajności.

Dla jednego kompilacji

Aby włączyć demona dla pojedynczej kompilacji, możesz po prostu przekazać argument --daemon do polecenia gradle lub skryptu Gradle Wrapper.

gradle --daemon
./gradlew --daemon

Dla wszystkich wersji projektu

Aby włączyć Daemona dla wszystkich wersji projektu, możesz dodać:

org.gradle.daemon=true

Do pliku gradle.properties twojego projektu.

Dla wszystkich wersji

Aby domyślnie włączyć Demona Gradle, dla każdej kompilacji utworzonej przez konto użytkownika w systemie edytuj $GRADLE_USER_HOME/.gradle/gradle.properties ( $GRADLE_USER_HOME/.gradle/gradle.properties ~/.gradle/gradle.properties ) i dodaj ten wiersz:

org.gradle.daemon=true

Możesz to również zrobić za pomocą jednego polecenia w systemach Mac / Linux / * nix:

touch ~/.gradle/gradle.properties && echo "org.gradle.daemon=true" >> ~/.gradle/gradle.properties

Lub w systemie Windows:

(if not exist "%USERPROFILE%/.gradle" mkdir "%USERPROFILE%/.gradle") && (echo org.gradle.daemon=true >> "%USERPROFILE%/.gradle/gradle.properties")

Wyłączanie demona

Możesz wyłączyć demona dla konkretnej kompilacji za pomocą argumentu --no-daemon lub wyłączyć go dla konkretnego projektu, ustawiając jawnie org.gradle.daemon=false w pliku gradle.properties projektu.

Zatrzymywanie demona

Jeśli chcesz ręcznie zatrzymać proces demona, możesz go zabić za pomocą menedżera zadań systemu operacyjnego lub uruchomić polecenie gradle --stop . Przełącznik --stop powoduje, że Gradle żąda, aby wszystkie działające procesy Daemona tej samej wersji Gradle, z której uruchomiono polecenie, zakończyły się. Zazwyczaj procesy Daemona kończą się automatycznie * po * 3 godzinach bezczynności lub mniej .

Kompilacje Gradle Parallel

Gradle domyślnie uruchamia tylko jedno zadanie na raz, niezależnie od struktury projektu. Używając przełącznika - --parallel , możesz zmusić Gradle do wykonywania niezależnych podprojektów - tych, które nie mają żadnych ukrytych lub jawnych zależności między projektami - równolegle, umożliwiając mu uruchamianie wielu zadań jednocześnie, dopóki te zadania są w różne projekty.

Aby zbudować projekty w trybie równoległym:

gradle build --parallel

Możesz również ustawić równoległe budowanie jako domyślne dla projektu, dodając następujące ustawienie do pliku gradle.properties projektu:

org.gradle.parallel=true

Użyj najnowszej wersji Gradle

Zespół Gradle regularnie pracuje nad poprawą wydajności różnych aspektów kompilacji Gradle. Jeśli korzystasz ze starej wersji Gradle, tracisz korzyści płynące z tej pracy. Spróbuj zaktualizować do najnowszej wersji Gradle, aby zobaczyć, jaki to ma wpływ. Jest to niskie ryzyko, ponieważ bardzo mało rzeczy rozbija się między mniejszymi wersjami Gradle.

Plik właściwości opakowania Gradle znajduje się w folderze projektu w gradle/wrapper/ i nazywa się gradle-wrapper.properties . Zawartość tego pliku może wyglądać następująco:

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

Możesz ręcznie zmienić numer wersji XXX (bieżąca wersja) na YYY (nowsza wersja), a przy następnym uruchomieniu opakowania nowa wersja zostanie pobrana automatycznie.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow