Skip to content

Commit cb0e9f8

Browse files
committed
[1.7.0-feature] gradle编译期间的耗时统计,wiki:https://juejin.cn/post/6844903607679057934
1 parent 4124091 commit cb0e9f8

File tree

2 files changed

+64
-0
lines changed

2 files changed

+64
-0
lines changed

compileTimeCost.gradle

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
/**
2+
* wiki: https://juejin.cn/post/6844903607679057934
3+
* 1、初始化阶段
4+
*/
5+
long beginOfSetting = System.currentTimeMillis()
6+
gradle.projectsLoaded {
7+
println '----------------------初始化阶段----------------------'
8+
println '初始化阶段,耗时:' + (System.currentTimeMillis() - beginOfSetting) + 'ms'
9+
println '----------------------初始化阶段----------------------'
10+
}
11+
12+
/**
13+
* 2、配置阶段
14+
*/
15+
def beginOfConfig
16+
def configHasBegin = false
17+
def beginOfProjectConfig = new HashMap()
18+
def configList = new ArrayList()
19+
gradle.beforeProject { project ->
20+
if (!configHasBegin) {
21+
configHasBegin = true
22+
beginOfConfig = System.currentTimeMillis()
23+
}
24+
beginOfProjectConfig.put(project, System.currentTimeMillis())
25+
}
26+
gradle.afterProject { project ->
27+
def begin = beginOfProjectConfig.get(project)
28+
configList.add("$project 耗时:${System.currentTimeMillis() - begin} ms")
29+
}
30+
31+
def beginOfProjectExecute
32+
gradle.taskGraph.whenReady {
33+
println '----------------------配置阶段----------------------'
34+
configList.forEach { configStr ->
35+
println(configStr)
36+
}
37+
println '配置阶段,总共耗时:' + (System.currentTimeMillis() - beginOfConfig) + 'ms'
38+
println '----------------------配置阶段----------------------'
39+
beginOfProjectExecute = System.currentTimeMillis()
40+
}
41+
42+
/**
43+
* 3、执行阶段
44+
*/
45+
def taskList = new ArrayList()
46+
gradle.taskGraph.beforeTask { task ->
47+
task.doFirst {
48+
task.ext.beginOfTask = System.currentTimeMillis()
49+
}
50+
task.doLast {
51+
taskList.add("$task 耗时:${System.currentTimeMillis() - task.beginOfTask} ms")
52+
}
53+
}
54+
gradle.buildFinished {
55+
println '----------------------执行阶段----------------------'
56+
taskList.forEach { taskStr ->
57+
println(taskStr)
58+
}
59+
println '执行阶段,总耗时:' + (System.currentTimeMillis() - beginOfProjectExecute) + 'ms'
60+
println '----------------------执行阶段----------------------'
61+
}

settings.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
//统计gradle编译耗时
2+
apply from: './compileTimeCost.gradle'
3+
14
include ':app'
25
include ':multiprocess_sever'
36
include ':plugin'

0 commit comments

Comments
 (0)