Gradle学习(四)——Gradle守护进程

原创 2017年12月21日 16:03:37

转载请注明出处:http://blog.csdn.net/lastsweetop/article/details/78864865
gradle是跑在JVM上的,需要的几个lib需要比较长的初始化时间,因此使用的时候有时候会显得很慢。解决的方案就是跑一个gralde的守护进程:一个后台运行的进程,可以让你的构建快很多。我们通过将你的项目信息作为缓存保留在内存中,来规避消耗昂贵的引导过程。你只需要选择是否启动守护进程就可以了,别的不需要关心,Gradle会帮你完成,是否有守护进程的gradle命令并没有什么不同。

为什么守护进程对于提高Gradle性能如此重要

守护进程是个一直在运行中的进程,不仅仅可以防止每次build都要启动JVM的花销,而且可以缓存项目结构,文件,任务等信息在内存中。

简单的来说就是,重复利用上一次构建的计算来提高本次的构建速度。而且提升的效果非常显著,基本都会提高15%-75%不等的效率,你可以通过--profile来查看你的构建到底提高有多少.

Gradle3.0之后守护进程会默认开启,你不需要做什么就可以享受它带来的好处。

但如果你的持续集成环境是一个瞬时的环境(比如只是docker里的一个container),无法重用上一次构建的计算,开启守护进程反而会变慢,因为它会耗费无用的内存资源,这种情况下还是关掉的好。

守护进程的状态

gradle --status将会获得守护进程的状态列表,输出如下:

PID STATUS   INFO
10646 IDLE     4.4

目前只能显示当前版本的守护进程

禁用守护进程

守护进程是默认开启的,我们也推荐最好开启它,但有些情况下你需要禁用他,那么禁用守护进程也相当简单,只需要在«USER_HOME»/.gradle/gradle.properties文件中增加一行配置:

org.gradle.daemon=false

如果«USER_HOME»/.gradle/文件夹下没有改文件,创建一个就OK了,你可能注意到了守护进程的开启与版本无关。

另外--daemon--no-daemon命令可以在命令行下启用和禁用守护进程,而且这两个选项的优先度很高,及时配置了启用和禁用的属性这两个选项也可以即时生效。

停止守护进程

守护进程是个后台进程,你不需要去担心它,如果系统内存不足的情况下,他自己会关闭掉的。如果你因为一些原因,想手动终止守护进程那么可以使用gradle --stop命令,它将终止当前gradle版本下相同版本的守护进程,如果你装了jdk,你可以使用jps指令看下,守护进程是否真的终止了,守护进程的名称为GradleDaemon

版权声明:本文为博主原创文章,未经博主允许不得转载。

mac如何关闭gradle的task,杀死gradle进程 how-to-stop-gradle-task-execution-in-Android-studio

在AS中运行编译时候往往会便已很久甚至卡顿,这个时候点击红色查查后gradle仍然在运行。 http://stackoverflow.com/questions/21184794/how-to-sto...
  • jackuhan
  • jackuhan
  • 2017年02月21日 19:58
  • 1445

Gradle 1.12翻译——第十九章. Gradle 守护进程

19.1. 走进守护进程 Gradle 守护进程(有时也称为构建守护进程) 的目的是改善 Gradle 的启动和执行时间。 我们准备了几个守护进程非常有用的用例。对于一些工作流,用户会多次调用 Gr...
  • maosidiaoxian
  • maosidiaoxian
  • 2014年11月21日 08:45
  • 4952

AndroidStudio无法启动Gradle守护进程

Android Studio+Gradle安装完毕后无法正常创建工程,显示 Unable to start the daemon process. This problem might be...
  • u010659278
  • u010659278
  • 2015年05月07日 21:43
  • 2007

记——加快gradle 构建速度的经验

Gradle作为一个新的构建系统,无疑在灵活,扩展,跨平台等各方面都表现得非常优秀,然而,它也有一点备受吐槽,就是速度慢。以下为本人使用gradle过程中,几次加快gradle构建速度的经验之谈。 ...
  • maosidiaoxian
  • maosidiaoxian
  • 2015年11月02日 10:59
  • 27102

Stop Gradle build processes的解决办法

刚刚编译工程的时候突然出现如下错误,各种clean各种rebuild都不行,但是其它的工程是能跑起来的。 解决的方法就是把.gradle文件夹下的含有tasks名称的文件夹删除就可以了,如图 ...
  • donglin1234
  • donglin1234
  • 2016年09月28日 14:41
  • 360

Gradle学习(四)——Gradle守护进程

gradle是跑在JVM上的,需要的几个lib需要比较长的初始化时间,因此使用的时候有时候会显得很慢。解决的方案就是跑一个gralde的守护进程:一个后台运行的进程,可以让你的构建快很多。我们通过将你...
  • lastsweetop
  • lastsweetop
  • 2017年12月21日 16:03
  • 348

AS gradle 编译引起的bug

问题描述引起原因由于某些原因导致垃圾回收器,每次花费了大量的时间(by default 98% of all CPU time of the process),仅仅恢复了一点点内存(by defaul...
  • XSF50717
  • XSF50717
  • 2017年01月12日 19:26
  • 1139

Gradle学习总结——抓重点学Gradle

前言网上关于Gradle的教程很多,但很多都是以“面”切入— 通过大量讲解其用法及其API分类来阐述。但Gradle API使用技巧众多,API更是成千上百,臣妾记不住呀。个人深信,技术之道与练功之道...
  • u012562943
  • u012562943
  • 2016年09月09日 10:32
  • 2924

加速Android Studio/Gradle构建

http://blog.csdn.net/lyhhj/article/details/50718761 http://blog.isming.me/2015/03/18/android-build-...
  • xx326664162
  • xx326664162
  • 2016年05月27日 14:57
  • 1184

gradle的执行顺序

gradle执行顺序是理解gradle的重要一步,我们可以随便举一个多项目的例子 例如 其中Project为FancyView,由两个Module,app和OpingStartAnimatio...
  • qq_33487412
  • qq_33487412
  • 2018年01月13日 16:54
  • 41
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Gradle学习(四)——Gradle守护进程
举报原因:
原因补充:

(最多只允许输入30个字)