28

Gradle 2.5 を使用して、5 つのモジュールで構成される Java プロジェクトをコンパイルしています。速度を上げるために、gradle-daemon も使用します。ただし、コンパイル中は gradle-daemon のインスタンスが最大 18 個実行されます。コンパイルが終了した後も、デーモンのインスタンスが 15 個残っています。デーモン プロセスは、約 600 MB の RAM を消費します。バックグラウンドで多くのデーモンが実行されているのは正常ですか、それとも gradle-daemon の構成が間違っていますか?

更新: 私のオペレーティング システムは Debian Jessie です。Java のバージョンは Oracle Java 8 です。

4

1 に答える 1

31

Antoniossss のアドバイスに従って、私は開発者と連絡を取りました。結局のところ、Gradle は実際にはリソースを大量に消費します。単純な「Hello World」アプリケーションの場合でも、デーモンは最大 150 MB、場合によってはそれ以上を使用する可能性があります。同じ JVM 内で実行される限り、複数のデーモン スレッドが開始されても問題ありません。メモリ使用量を制御/制限するためのユーザー側の制御は限られています。Xmx オプションを JVM に渡すために GRADLE_OPTS 変数を設定できます。たとえば、次の設定で Android プロジェクトをビルドできました。

$ export GRADLE_OPTS="-Xmx64m -Dorg.gradle.jvmargs='-Xmx256m -XX:MaxPermSize=64m'"

最初の -Xmx オプションは CLI で開始する Gradle に設定され、2 番目 (-Dorg.gradle.jvmargs の後) は Gradle-Daemon の -Xmx 値です。

JVMに許可するメモリが少ないほど、ビルドが失敗するリスクが高くなります-明らかに。そのため、目的に合うまでこれらの設定を調整する必要がある場合があります。

これらの設定は、gradle.properties ファイルでも設定できます。

于 2015-12-21T13:19:48.427 に答える