web-dev-qa-db-fra.com

Exécuter l'application via gradlew avec -Xmx et -Xms

J'ai une application. Je l'exécute via

gradlew run-app

Ou déboguer

gradlew debug-app

Ça marche. Comment passer l'argument '-Xmx' dans l'application que j'exécute (débogage)? Est-il possible de le faire sans modification build.gradle fichier?

J'ai trouvé cela option de ligne de commande Gradle inconnue '-X'

J'obtiens une erreur similaire lorsque j'essaie

gradlew debug-app -Xmx2000m

Erreur

FAILURE: Build failed with an exception.

* What went wrong:
Problem configuring task :debug-app from command line.
> Unknown command-line option '-X'.

J'ai essayé de créer un fichier gradle.properties dans GRADLE_USER_HOME répertoire (par défaut, il s'agit de USER_HOME/.gradle).

org.gradle.jvmargs=-XX\:MaxHeapSize\=4256m -Xmx4256m -Xms2000m

J'ai aussi essayé de org.gradle.jvmargs=-Xmx2000m dans le dossier du projet gradle.properties.

Et même lorsque je lance une application, je vois que la taille de la mémoire engagée est <520 Mio

enter image description here

Et c'est là que je l'exécute en tant qu'application normale Java

enter image description here

Dans le second cas, lorsque j'exécute l'application en tant qu'application normale Java avec -Xms, -Xmx, la taille de la mémoire engagée est d'environ 3,5 GiB car j'ai réussi -Xmx4512m -Xms2512m paramètres.

15
Yan Khonski

Ajoutez ceci dans votre gradle.properties fichier :

org.gradle.jvmargs=-Xmx2000m

De ici

org.gradle.jvmargs

Spécifie les jvmargs utilisés pour le processus démon. Le paramètre est particulièrement utile pour modifier les paramètres de la mémoire. Pour le moment, les paramètres par défaut sont assez généreux en ce qui concerne la mémoire.

edit: ma réponse qu'en est-il du démon gradle jvm, pas de l'application jvm. Vous devez utiliser la propriété jvmArgs

Les arguments supplémentaires à utiliser pour lancer la machine virtuelle Java pour le processus. N'inclut pas les propriétés système et la taille minimale/maximale du segment de mémoire.

8
ToYonos

En utilisant l'application le plugin on peut utiliser la propriété applicationDefaultJvmArgs

apply plugin: 'application'    
applicationDefaultJvmArgs = ["-Xms1024m", "-Xmx2048m"]

Les arguments seront appliqués à exécuter la tâche et démarrer le script de votre application

plus d'informations

10
MKK

Tout d'abord, merci @ToYonos de m'avoir conduit dans la bonne direction.

Deuxièmement, j'ai trouvé la solution ici https://stackoverflow.com/a/9648945/4587961 . J'ai exécuté mon application à partir de la ligne de commande.

set GRADLE_OPTS=-Xms1724m -Xmx5048m
gradlew debug-app

Remarque, la commande CMD Windows SET fonctionne localement, donc si vous fermez votre terminal, GRADLE_OPTS ne sera pas défini. Pour Linux, vous pouvez utiliser

export GRADLE_OPTS=WHATEVER

C'est ce que je voulais réaliser.

enter image description here

7
Yan Khonski