PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 24 → Gradle - lenteur
Gradle - lenteur
Débuté par Vivien, 10 mar. 2016 17:33 - 9 réponses
Posté le 10 mars 2016 - 17:33
Bonjour à tous,
La phase "gradle' lors de la génération d'une application Android est extrement lente. Pour une petite application, cela prend facilement 5 minutes. Est-ce normal ? merci.
Vivien
Membre enregistré
44 messages
Posté le 14 mars 2016 - 22:49
Bonjour,

Même "souci" sur les postes ici... entre 3m30 et 5min, même sur un projet d'une seul fenêtre. On commence à se demander si le Gradle ne fait pas des appels web tellement c'est long.
Egalement testé avec les version 2.8 et 2.9 recommandée par PC Soft... idem.

Stéphan L.
Membre enregistré
116 messages
Posté le 15 mars 2016 - 00:45
Idem de mon côté, c'est extrêmement lent par rapport à iOS ou WUA 10
Membre enregistré
547 messages
Popularité : +1 (1 vote)
Posté le 15 mars 2016 - 08:41
Bonjour,

Personnellement je trouve que la compilation sous Android est effectivement assez lente.

Cependant, lente par rapport à quoi ?

Il conviendrait d'effectuer des mesures précises pour être objectif. En l'occurrence, faire des comparatifs.
Sur quelle machine, processeur, mémoire... l'application est-elle compilée ?
Quelles sont les options choisies dans le configurateur WM ?
- Version android ? sera plus ou moins lent selon la version Android choisie.
- Dans les configurations avancées si "Réduire la taille du code généré" est cochée, la compilation sera effectivement très longue, etc...).

Dans tous les cas, pour une compilation plus rapide en phase de développement, choisissez une version >= à Android 5.0, décochez la case "Réduire la taille du code" si possible.

Enfin, il n'est pas possible de comparer avec iOS. En effet, la VRAI compilation s'effectue sous Xcode et non pas depuis WM.

Cdlt - Eric.

--
Eric DELATTRE
http://www.yoosite.fr
Membre enregistré
44 messages
Posté le 15 mars 2016 - 09:21
Bonjour,

Je profite pour répondre au message d'Eric.
Pour ma part, les "tests" comparatifs sont fait sur une même machine ( un Macbook Pro 8,2 ) avec Bootcamp. ( et pour la compilation Xcode, OSX El Capitan en VM sur le Windows en Bootcamp = méthode la plus rapide trouvée pour compiler à mon goût ).

- Quand pour un même projet le Gradle a mis 3m47s (hors install sur le mobile), j'en ai eu pour la version IOS pour moins de 25secondes, dans lesquelles je compte ( Générer l'application IOS depuis WM : env 5sec, + 15-20sec de : compile sur Xcode + envoi sur mobile ). Je ne compte pas le temps de transfert vers OSX en VM où je dois avoir 15sec supplémentaires.

- Sinon pour moi, les "astuces" pour une compilation plus rapide ne fonctionnent pas, et plantent la génération Gradle, car si je décoche "Réduire la taille du code", j'ai obligatoirement l'erreur du dépassement (des 65000 références).

Je reste donc preneur si une autre astuce se présente :)

Cdt

Stéphan L.
Posté le 15 mars 2016 - 12:33
Hi. You can try the next solution to optimize the Gradle recompliations:

1) Go to c:\users\<user> folder
2) search the .gradle folder and go into.
3) Edit or create a gradle.properties file and open it.

4) Add the next lines:

# Project-wide Gradle settings.

# IDE (e.g. Android Studio) users:
# Settings specified in this file will override any Gradle settings
# configured through the IDE.

# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html

# The Gradle daemon aims to improve the startup and execution time of Gradle.
# When set to true the Gradle daemon is to run the build.
# TODO: disable daemon on CI, since builds should be clean and reliable on servers
org.gradle.daemon=true

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html…
org.gradle.parallel=true

# Enables new incubating mode that makes Gradle selective when configuring projects.
# Only relevant projects are configured which results in faster builds for large multi-projects.
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html…
#org.gradle.configureondemand=true

org.gradle.java.home=D:\\Program Files\\Java\\jdk1.8.0_74


You must change your JDK folder and change the Gradle memory allowed to use.

With the daemon configuration set to true then the Gradle is ever in memory and then the process is more quickly.

More info http://stackoverflow.com/questions/17324849/android-studio-gradle-build-speed-up

Rubén
Membre enregistré
44 messages
Posté le 15 mars 2016 - 14:03
Thanks, I'll try it :)

S.L.
Posté le 05 avril 2018 - 15:35
Bonjour,

Merci pour la configuration Gradle et je confirme, la génération est plus rapide.

Bonne journée !

Nicolas UNGERN-STERNBERG
Membre enregistré
3 messages
Posté le 22 juin 2018 - 21:51
Bonjour,
En terme de rapidité de compilation Gradle, la quantité de RAM joue-t-elle un rôle important ?
Si oui, quelle serait à peu près la quantité de RAM minimale pour avoir une compilation plus rapide ?
Sinon en terme de disques, je suis en SSD et je ne suis pas sûr que la CPU fasse beaucoup de différence.
Je serai curieux de connaître les config avec lesquelles vous travaillez pour compiler vos Gradle.

Voici l'une des miennes :
---------------------------
CPU : Intel Core i5-5300U CPU@ 2.30GHz 2.30Ghz
Mémoire installée (RAM) : 8,00 Go (7,70 Go utilisables)
Disque : TOSHIBA THNSFJ256GCSU
OS : Win7 professionnel SP1 64 bits
Membre enregistré
158 messages
Posté le 07 juillet 2018 - 17:00
Hi. Yes, As a general rule, yes. The more memory and processors you dedicate to Gradle, the faster the generation and compilation of the application will be, although you have to be aware that the use of that memory will be maintained for a certain time, so if you need to reuse it you must kill the Java processes that are loaded in memory. I am currently using Gradle version 3.5.1, which is the latest WM compatible version.

My current Gradle configurarion with a 16 GB machine is

# Project-wide Gradle settings.

# IDE (e.g. Android Studio) users:
# Settings specified in this file will override any Gradle settings
# configured through the IDE.

# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html

# The Gradle daemon aims to improve the startup and execution time of Gradle.
# When set to true the Gradle daemon is to run the build.
# TODO: disable daemon on CI, since builds should be clean and reliable on servers
org.gradle.daemon=true

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
# Default value: -Xmx10248m -XX:MaxPermSize=256m
org.gradle.jvmargs=-Xms1g -Xmx6g -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html…
org.gradle.parallel=true

# Enables new incubating mode that makes Gradle selective when configuring projects.
# Only relevant projects are configured which results in faster builds for large multi-projects.
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html…
org.gradle.configureondemand=false

org.gradle.java.home=C:\\Program Files\\Java\\jdk1.8.0_172

org.gradle.workers.max=6

com.android.build.gradle.overridePathCheck=true

com.android.build.gradle.overrideVersionCheck=true

org.gradle.caching=true

#startParameter.offline=false

Anybody got a better setup?

Rubén