Skip to content

Commit c131f0b

Browse files
committed
adds task timing enabled by -Pprofile (performance sample)
1 parent 89bbd0a commit c131f0b

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

examples/performance-sample/build.gradle

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,3 +261,43 @@ task doAll() {
261261
dependsOn loadInputData
262262
dependsOn allHarmonizeFlows
263263
}
264+
265+
import java.util.concurrent.TimeUnit
266+
class TimingsListener implements TaskExecutionListener, BuildListener {
267+
private long startTime
268+
private timings = []
269+
270+
@Override
271+
void beforeExecute(Task task) {
272+
startTime = System.nanoTime()
273+
}
274+
275+
@Override
276+
void afterExecute(Task task, TaskState taskState) {
277+
timings.add([
278+
TimeUnit.MILLISECONDS.convert(System.nanoTime() -
279+
startTime, TimeUnit.NANOSECONDS),
280+
task.path
281+
])
282+
}
283+
284+
@Override
285+
void buildFinished(BuildResult result) {
286+
println "Task timings:"
287+
for (timing in timings)
288+
printf "%10.3fs %s\n", (timing[0] / 1000), timing[1]
289+
}
290+
291+
@Override
292+
void buildStarted(Gradle gradle) {}
293+
@Override
294+
void projectsEvaluated(Gradle gradle) {}
295+
@Override
296+
void projectsLoaded(Gradle gradle) {}
297+
@Override
298+
void settingsEvaluated(Settings settings) {}
299+
}
300+
301+
if (project.hasProperty('profile')) {
302+
gradle.addListener new TimingsListener()
303+
}

0 commit comments

Comments
 (0)