net.sf.antcontrib.perf
Class AntPerformanceListener

java.lang.Object
  extended by net.sf.antcontrib.perf.AntPerformanceListener
All Implemented Interfaces:
java.util.EventListener, org.apache.tools.ant.BuildListener

public class AntPerformanceListener
extends java.lang.Object
implements org.apache.tools.ant.BuildListener

This BuildListener keeps track of the total time it takes for each target and task to execute, then prints out the totals when the build is finished. This can help pinpoint the areas where a build is taking a lot of time so optimization efforts can focus where they'll do the most good. Execution times are grouped by targets and tasks, and are sorted from fastest running to slowest running. Output can be saved to a file by setting a property in Ant. Set "performance.log" to the name of a file. This can be set either on the command line with the -D option (-Dperformance.log=/tmp/performance.log) or in the build file itself ().

Developed for use with Antelope, migrated to ant-contrib Oct 2003.

Version:
$Revision: 1.5 $
Author:
Dale Anson, danson@germane-software.com

Nested Class Summary
 class AntPerformanceListener.StopWatch
          A stopwatch, useful for 'quick and dirty' performance testing.
 class AntPerformanceListener.StopWatchComparator
          Compares the total times for two StopWatches.
 
Constructor Summary
AntPerformanceListener()
           
 
Method Summary
 void buildFinished(org.apache.tools.ant.BuildEvent be)
          Sorts and prints the results.
 void buildStarted(org.apache.tools.ant.BuildEvent be)
          Starts a 'running total' stopwatch.
static void main(java.lang.String[] args)
           
 void messageLogged(org.apache.tools.ant.BuildEvent be)
          no-op
 void targetFinished(org.apache.tools.ant.BuildEvent be)
          Stop timing the given target.
 void targetStarted(org.apache.tools.ant.BuildEvent be)
          Start timing the given target.
 void taskFinished(org.apache.tools.ant.BuildEvent be)
          Stop timing the given task.
 void taskStarted(org.apache.tools.ant.BuildEvent be)
          Start timing the given task.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AntPerformanceListener

public AntPerformanceListener()
Method Detail

buildStarted

public void buildStarted(org.apache.tools.ant.BuildEvent be)
Starts a 'running total' stopwatch.

Specified by:
buildStarted in interface org.apache.tools.ant.BuildListener

buildFinished

public void buildFinished(org.apache.tools.ant.BuildEvent be)
Sorts and prints the results.

Specified by:
buildFinished in interface org.apache.tools.ant.BuildListener

targetStarted

public void targetStarted(org.apache.tools.ant.BuildEvent be)
Start timing the given target.

Specified by:
targetStarted in interface org.apache.tools.ant.BuildListener

targetFinished

public void targetFinished(org.apache.tools.ant.BuildEvent be)
Stop timing the given target.

Specified by:
targetFinished in interface org.apache.tools.ant.BuildListener

taskStarted

public void taskStarted(org.apache.tools.ant.BuildEvent be)
Start timing the given task.

Specified by:
taskStarted in interface org.apache.tools.ant.BuildListener

taskFinished

public void taskFinished(org.apache.tools.ant.BuildEvent be)
Stop timing the given task.

Specified by:
taskFinished in interface org.apache.tools.ant.BuildListener

messageLogged

public void messageLogged(org.apache.tools.ant.BuildEvent be)
no-op

Specified by:
messageLogged in interface org.apache.tools.ant.BuildListener

main

public static void main(java.lang.String[] args)