Last active
August 29, 2015 14:10
-
-
Save fboldog/3ba391bcf2c808de01a0 to your computer and use it in GitHub Desktop.
Collect and print tasks execute times
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// 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