Skip to content

Instantly share code, notes, and snippets.

@SeanZoR
Last active July 6, 2016 06:54
Show Gist options
  • Save SeanZoR/d0dd4b45d7f01d7c792dbc627ac80f22 to your computer and use it in GitHub Desktop.
Save SeanZoR/d0dd4b45d7f01d7c792dbc627ac80f22 to your computer and use it in GitHub Desktop.
Android Gradle Tasks Timing
// Log timings per task.
class TimingsListener implements TaskExecutionListener, BuildListener {
private Clock clock
private timings = []
@Override
void beforeExecute(Task task) {
clock = new org.gradle.util.Clock()
}
@Override
void afterExecute(Task task, TaskState taskState) {
def ms = clock.timeInMs
timings.add([ms, task.path])
task.project.logger.warn "${task.path} took ${ms}ms"
}
@Override
void buildFinished(BuildResult result) {
println "Task timings:"
for (timing in timings) {
if (timing[0] >= 50) {
printf "%7sms %s\n", timing
}
}
}
@Override
void buildStarted(Gradle gradle) {}
@Override
void projectsEvaluated(Gradle gradle) {}
@Override
void projectsLoaded(Gradle gradle) {}
@Override
void settingsEvaluated(Settings settings) {}
}
// Add the listener
gradle.addListener new TimingsListener()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment