web-dev-qa-db-ja.com

-Xmxおよび-Xmsを使用してgradlew経由でアプリケーションを実行する

アプリケーションがあります。経由で実行します

gradlew run-app

またはデバッグ

gradlew debug-app

できます。実行するアプリケーションに「-Xmx」引数を渡す方法(デバッグ) build.gradleファイルを編集せずにこれを行うことはできますか?

私はこれを見つけました Gradle unknown command-line option '-X'

しようとすると同様のエラーが表示されます

gradlew debug-app -Xmx2000m

エラー

FAILURE: Build failed with an exception.

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

gradle.propertiesディレクトリにファイルGRADLE_USER_HOMEを作成しようとしました(デフォルトでは、USER_HOME/.gradleです)。

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

また、プロジェクトフォルダorg.gradle.jvmargs=-Xmx2000mgradle.propertiesを試しました。

さらに、アプリケーションを実行すると、コミットされたメモリサイズが520 MiB未満であることがわかります。

enter image description here

そして、これは通常のJava Appとして実行したときです

enter image description here

2番目のケースでは、アプリケーションを通常のJava -Xms、-Xmxでアプリを実行すると、コミットされたメモリサイズは約3.5 GiB -Xmx4512m -Xms2512mパラメーター。

15
Yan Khonski

これをgradle.propertiesファイルに追加します:

org.gradle.jvmargs=-Xmx2000m

ここ から

org.gradle.jvmargs

デーモンプロセスに使用されるjvmargsを指定します。この設定は、メモリ設定を微調整する場合に特に便利です。現時点では、デフォルトの設定はメモリに関してかなり寛大です。

編集:私の答えはアプリjvmではなく、gradleデーモンjvmについてです。 jvmArgsプロパティ を使用する必要があります

プロセスのJVMを起動するために使用する追加の引数。システムプロパティと最小/最大ヒープサイズは含まれません。

8
ToYonos

applicationプラグインを使用すると、applicationDefaultJvmArgsプロパティを使用できます

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

引数はrunタスクに適用され、アプリケーションのスクリプトを開始します

詳細

10
MKK

まず、私を正しい方向に導いてくれた@ToYonosに感謝します。

次に、ここで解決策を見つけました https://stackoverflow.com/a/9648945/4587961 。コマンドラインからアプリを実行しました。

set GRADLE_OPTS=-Xms1724m -Xmx5048m
gradlew debug-app

CMD WindowsコマンドSETはローカルで機能するため、端末を閉じた場合、GRADLE_OPTSは設定されません。 Linuxの場合、次を使用できます。

export GRADLE_OPTS=WHATEVER

これは私が達成したかったものです。

enter image description here

7
Yan Khonski