Skip to content

Instantly share code, notes, and snippets.

@SeanZoR
Last active July 6, 2016 06:54

Revisions

  1. SeanZoR revised this gist Jul 6, 2016. 1 changed file with 2 additions and 6 deletions.
    8 changes: 2 additions & 6 deletions gradle-print-tasks-time.gradle
    Original file line number Diff line number Diff line change
    @@ -1,8 +1,3 @@
    // How to use?
    // Add to your gradle these lines:
    // 1. apply from: 'https://gist.githubusercontent.com/SeanZoR/d0dd4b45d7f01d7c792dbc627ac80f22/raw/23b7ec76b0740bf1da3c4e23199621d98b53c939/gradle-print-tasks-time.gradle'
    // 2. gradle.addListener new PublicTimingsListener()

    // Log timings per task.
    class TimingsListener implements TaskExecutionListener, BuildListener {
    private Clock clock
    @@ -43,4 +38,5 @@ class TimingsListener implements TaskExecutionListener, BuildListener {
    void settingsEvaluated(Settings settings) {}
    }

    ext.PublicTimingsListener = TimingsListener
    // Add the listener
    gradle.addListener new TimingsListener()
  2. SeanZoR revised this gist Jul 6, 2016. 1 changed file with 5 additions and 3 deletions.
    8 changes: 5 additions & 3 deletions gradle-print-tasks-time.gradle
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,7 @@
    // How to use?
    // Add to your gradle these lines:
    // 1. apply from: 'https://....'
    // 2. gradle.addListener new TimingsListener()
    // 1. apply from: 'https://gist.githubusercontent.com/SeanZoR/d0dd4b45d7f01d7c792dbc627ac80f22/raw/23b7ec76b0740bf1da3c4e23199621d98b53c939/gradle-print-tasks-time.gradle'
    // 2. gradle.addListener new PublicTimingsListener()

    // Log timings per task.
    class TimingsListener implements TaskExecutionListener, BuildListener {
    @@ -41,4 +41,6 @@ class TimingsListener implements TaskExecutionListener, BuildListener {

    @Override
    void settingsEvaluated(Settings settings) {}
    }
    }

    ext.PublicTimingsListener = TimingsListener
  3. SeanZoR created this gist Jul 6, 2016.
    44 changes: 44 additions & 0 deletions gradle-print-tasks-time.gradle
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,44 @@
    // How to use?
    // Add to your gradle these lines:
    // 1. apply from: 'https://....'
    // 2. gradle.addListener new TimingsListener()

    // 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) {}
    }