LoginSignup
45
41

More than 5 years have passed since last update.

Gradleの実行環境をデーモン化して素早くビルドできるようにする

Posted at

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
45
41
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
45
41