Gradle的Daemon模式
关于如何设置gradle的daemon模式,在这篇文档1中有说明。Gradle会在我们的用户目录下创建一个名为”.gradle”的目录:
$ ls -d ~/.gradle
/Users/weli/.gradle
我们在其中创建一个配置文件:
echo "org.gradle.daemon=true" >> ~/.gradle/gradle.properties
配置完成后,试着build项目:
imac:04 weli$ gradle build
Starting a new Gradle Daemon for this build (subsequent builds will be faster).
:buildEnvironment
------------------------------------------------------------
Root project
------------------------------------------------------------
classpath
No dependencies
BUILD SUCCESSFUL
Total time: 1.968 secs
可以看到gradle会启动一个daemon,这样后续build的时候就会省去了gradle自身的加载和启动时间,提升了build速度。我们可以找到gradle的相关进程:
$ ps -ef | grep java
501 22085 1 0 1:02AM ttys001 0:04.82 /Library/Java/JavaVirtualMachines/jdk1.8.0_66.jdk/Contents/Home/bin/java -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -Xmx1024m -Dfile.encoding=UTF-8 -Duser.country=US -Duser.language=en -Duser.variant -cp /Users/weli/projs/gradle-2.14/lib/gradle-launcher-2.14.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 2.14
501 22126 20686 0 1:04AM ttys001 0:00.00 grep java
可以使用下面的命令停掉daemon:
$ gradle --stop
Stopping daemon(s).
Gradle daemon stopped.
我们可以使用gradle的报告功能-profile
来查看执行过程的性能分析:
$ gradle hello -profile
:hello
Hello, world!
BUILD SUCCESSFUL
Total time: 0.49 secs
执行完成后会生成html格式的报告:
$ tree
.
├── build
│ └── reports
│ └── profile
│ ├── css
│ │ ├── base-style.css
│ │ └── style.css
│ ├── js
│ │ └── report.js
│ ├── profile-2016-06-27-01-06-30.html
│ └── profile-2016-06-27-01-06-33.html
└── build.gradle
5 directories, 6 files
报告样式如下:
如果我们比对第一次执行build task,启动daemon,以及后续再次执行build task的两份报告,应该可以看到Startup
所需时间上面的差别。
-
https://docs.gradle.org/2.14/userguide/gradle_daemon.html ↩
- 上一篇 Gradle的依赖管理模型
- 下一篇 Papers3和Scihub的联合使用