Skip to content

Instantly share code, notes, and snippets.

@fboldog
Last active August 29, 2015 14:10
Show Gist options
  • Save fboldog/3ba391bcf2c808de01a0 to your computer and use it in GitHub Desktop.
Save fboldog/3ba391bcf2c808de01a0 to your computer and use it in GitHub Desktop.
Collect and print tasks execute times
//
// Collect and print tasks execute times
// init: addExecTimeLogger 50
//
ext.addExecTimeLogger = { minExecutionTime ->
gradle.addListener new TaskExecTimeLogger(minExecutionTime)
}
public class TaskExecTimeLogger implements TaskExecutionListener, BuildListener {
private Clock clock
private def taskTimes = [:]
private def minExecutionTime
public TaskExecTimeLogger(minExecutionTime){
this.minExecutionTime = minExecutionTime
}
@Override
void beforeExecute(Task task) {
clock = new Clock()
}
@Override
void afterExecute(Task task, TaskState taskState) {
def ms = clock.timeInMs
taskTimes[task.path] = ms;
}
@Override
void buildFinished(BuildResult result) {
println "Task timings:"
taskTimes.each { taskTime ->
if(taskTime.value >= minExecutionTime) {
printf "%7sms %s\n", taskTime.value, taskTime.key
}
}
}
@Override
void buildStarted(Gradle gradle) {}
@Override
void projectsEvaluated(Gradle gradle) {}
@Override
void projectsLoaded(Gradle gradle) {}
@Override
void settingsEvaluated(Settings settings) {}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment