Androidアプリの開発中に./gradlew clean
したところ、下記のような表示が出てきました。
$ ./gradlew clean
:sample-app:clean
:sdk:clean
BUILD SUCCESSFUL
Total time: 13.855 secs
This build could be faster, please consider using the Gradle Daemon: http://gradle.org/docs/2.4/userguide/gradle_daemon.html
意訳すると「早くなるからデーモン化も考えてみて。リンクはここ http://gradle.org/docs/2.4/userguide/gradle_daemon.html 」といったところでしょうか。
デーモン化する
以下のコマンドを実行すればOKです。
単純に設定ファイルの作成とデーモン設定を追加するだけのようですね。
$ touch ~/.gradle/gradle.properties && echo "org.gradle.daemon=true" >> ~/.gradle/gradle.properties
実行してみる
上記設定をしたうえで、再度./gradlew clean
してみます。
# 初回はデーモンが起動していないので遅いはず。
$ ./gradlew clean
:sample-app:clean
:sdk:clean
BUILD SUCCESSFUL
Total time: 4.386 secs
# デーモンが立ち上がったかどうか確認
# 立ち上がってるっぽい。
$ ps ax | grep gradle
993 ?? 1:35.33 /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/bin/java -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -Xmx1024m -Dfile.encoding=UTF-8 -Duser.country=JP -Duser.language=ja -Duser.variant -cp /Applications/Android Studio.app/Contents/gradle/gradle-2.4/lib/gradle-launcher-2.4.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 2.4 /Users/shoma2da/.gradle /Users/shoma2da/.gradle/daemon 10800000 61b537cf-de75-4f78-abf7-a3ae0e750734 -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -Xmx1024m -Dfile.encoding=UTF-8 -Duser.country=JP -Duser.language=ja -Duser.variant
1387 ttys001 0:00.00 grep gradle
# 再度実行してみる
$ time ./gradlew clean
:sample-app:clean UP-TO-DATE
:sdk:clean UP-TO-DATE
BUILD SUCCESSFUL
Total time: 1.864 secs
上記のように初回は4秒少々、デーモン起動後は2秒弱となり倍近くなりました!すごい!
デーモンを使わない場合は
./gradlew --no-daemon clean
です。--no-daemon
オプションを付けます
デーモンを停止するには
--stop
オプションを使います。
# デーモンが起動している!
$ ps ax | grep gradle
993 ?? S 1:51.81 /Library/Java/JavaVirtualMachines/jdk1.8.0_05.jdk/Contents/Home/bin/java -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -Xmx1024m -Dfile.encoding=UTF-8 -Duser.country=JP -Duser.language=ja -Duser.variant -cp /Applications/Android Studio.app/Contents/gradle/gradle-2.4/lib/gradle-launcher-2.4.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 2.4 /Users/shoma2da/.gradle /Users/shoma2da/.gradle/daemon 10800000 61b537cf-de75-4f78-abf7-a3ae0e750734 -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -Xmx1024m -Dfile.encoding=UTF-8 -Duser.country=JP -Duser.language=ja -Duser.variant
1629 s001 R+ 0:00.00 grep gradle
# デーモンを止める
$ ./gradlew --stop
Stopping daemon(s).
Gradle daemon stopped.
# 止まった!
$ ps ax | grep gradle
1713 s001 S+ 0:00.00 grep gradle