Overview | Package | Class | Tree | Deprecated | Index | Help
| Spring Framework
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.springframework.util
Class StopWatch

    java.lang.Object
      org.springframework.util.StopWatch

    public class StopWatch

extends java.lang.Object

Simple stop watch, allowing for timing of a number of tasks, exposing total running time and running time for each named task.

Conceals use of `System.currentTimeMillis()`, improving the readability of application code and reducing the likelihood of calculation errors.

Note that this object is not designed to be thread-safe and does not use synchronization.

This class is normally used to verify performance during proof-of-concepts and in development, rather than as part of production applications.

Since:
  May 2, 2001
Author:
  Rod Johnson, Juergen Hoeller, Sam Brannen

Nested Class Summary
`static class` | `StopWatch.TaskInfo` Inner class to hold data about one task executed within the stop watch.

Constructor Summary
`StopWatch()` Construct a new stop watch.
`StopWatch(java.lang.String id)` Construct a new stop watch with the given id.

Method Summary
`StopWatch.TaskInfo` | `getLastTaskInfo()` Return the last task as a TaskInfo object.
`java.lang.String` | `getLastTaskName()` Return the name of the last task.
`long` | `getLastTaskTimeMillis()` Return the time taken by the last task.
`int` | `getTaskCount()` Return the number of tasks timed.
`StopWatch.TaskInfo[]` | `getTaskInfo()` Return an array of the data for tasks performed.
`long` | `getTotalTimeMillis()` Return the total time in milliseconds for all tasks.
`double` | `getTotalTimeSeconds()` Return the total time in seconds for all tasks.
`boolean` | `isRunning()` Return whether the stop watch is currently running.
`java.lang.String` | `prettyPrint()` Return a string with a table describing all tasks performed.
`void` | `setKeepTaskList(boolean keepTaskList)` Determine whether the TaskInfo array is built over time.
`java.lang.String` | `shortSummary()` Return a short description of the total running time.
`void` | `start()` Start an unnamed task.
`void` | `start(java.lang.String taskName)` Start a named task.
`void` | `stop()` Stop the current task.
`java.lang.String` | `toString()` Return an informative string describing all tasks performed For custom reporting, call `getTaskInfo()` and use the task info directly.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Constructor Detail

### StopWatch

    public StopWatch()

  Construct a new stop watch. Does not start any task.

### StopWatch

    public StopWatch(java.lang.String id)

  Construct a new stop watch with the given id. Does not start any task.

  Parameters:
    `id` - identifier for this stop watch. Handy when we have output from multiple stop watches and need to distinguish between them.

Method Detail

### setKeepTaskList

    public void setKeepTaskList(boolean keepTaskList)

  Determine whether the TaskInfo array is built over time. Set this to "false" when using a StopWatch for millions of intervals, or the task info structure will consume excessive memory. Default is "true".

### start

    public void start()
               throws java.lang.IllegalStateException

  Start an unnamed task. The results are undefined if `stop()` or timing methods are called without invoking this method.

  Throws:
    `java.lang.IllegalStateException`
  See Also:
    `stop()`

### start

    public void start(java.lang.String taskName)
               throws java.lang.IllegalStateException

  Start a named task. The results are undefined if `stop()` or timing methods are called without invoking this method.

  Parameters:
    `taskName` - the name of the task to start
  Throws:
    `java.lang.IllegalStateException`
  See Also:
    `stop()`

### stop

    public void stop()
              throws java.lang.IllegalStateException

  Stop the current task. The results are undefined if timing methods are called without invoking at least one pair `start()` / `stop()` methods.

  Throws:
    `java.lang.IllegalStateException`
  See Also:
    `start()`

### isRunning

    public boolean isRunning()

  Return whether the stop watch is currently running.

### getLastTaskTimeMillis

    public long getLastTaskTimeMillis()
                               throws java.lang.IllegalStateException

  Return the time taken by the last task.

  Throws:
    `java.lang.IllegalStateException`

### getLastTaskName

    public java.lang.String getLastTaskName()
                                     throws java.lang.IllegalStateException

  Return the name of the last task.

  Throws:
    `java.lang.IllegalStateException`

### getLastTaskInfo

    public StopWatch.TaskInfo getLastTaskInfo()
                                       throws java.lang.IllegalStateException

  Return the last task as a TaskInfo object.

  Throws:
    `java.lang.IllegalStateException`

### getTotalTimeMillis

    public long getTotalTimeMillis()

  Return the total time in milliseconds for all tasks.

### getTotalTimeSeconds

    public double getTotalTimeSeconds()

  Return the total time in seconds for all tasks.

### getTaskCount

    public int getTaskCount()

  Return the number of tasks timed.

### getTaskInfo

    public StopWatch.TaskInfo[] getTaskInfo()

  Return an array of the data for tasks performed.

### shortSummary

    public java.lang.String shortSummary()

  Return a short description of the total running time.

### prettyPrint

    public java.lang.String prettyPrint()

  Return a string with a table describing all tasks performed. For custom reporting, call getTaskInfo() and use the task info directly.

### toString

    public java.lang.String toString()

  Return an informative string describing all tasks performed For custom reporting, call `getTaskInfo()` and use the task info directly.

  Overrides:
    `toString` in class `java.lang.Object`

Overview | Package | Class | Tree | Deprecated | Index | Help
| Spring Framework
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD