Package org.elasticsearch.common
Class StopWatch
- java.lang.Object
-
- org.elasticsearch.common.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.nanoTime()
, 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.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
StopWatch.TaskInfo
Inner class to hold data about one task executed within the stop watch.
-
Method Summary
Modifier and Type Method Description boolean
isRunning()
Return whether the stop watch is currently running.StopWatch
keepTaskList(boolean keepTaskList)
Determine whether the TaskInfo array is built over time.java.lang.String
lastTaskName()
Return the name of the last task.TimeValue
lastTaskTime()
Return the time taken by the last task.java.lang.String
prettyPrint()
Return a string with a table describing all tasks performed.java.lang.String
shortSummary()
Return a short description of the total running time.StopWatch
start()
Start an unnamed task.StopWatch
start(java.lang.String taskName)
Start a named task.StopWatch
stop()
Stop the current task.int
taskCount()
Return the number of tasks timed.StopWatch.TaskInfo[]
taskInfo()
Return an array of the data for tasks performed.java.lang.String
toString()
Return an informative string describing all tasks performed For custom reporting, callgetTaskInfo()
and use the task info directly.TimeValue
totalTime()
Return the total time for all tasks.
-
-
-
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
-
keepTaskList
public StopWatch keepTaskList(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 StopWatch start() throws java.lang.IllegalStateException
Start an unnamed task. The results are undefined ifstop()
or timing methods are called without invoking this method.- Throws:
java.lang.IllegalStateException
- See Also:
stop()
-
start
public StopWatch start(java.lang.String taskName) throws java.lang.IllegalStateException
Start a named task. The results are undefined ifstop()
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 StopWatch stop() throws java.lang.IllegalStateException
Stop the current task. The results are undefined if timing methods are called without invoking at least one pairstart()
/stop()
methods.- Throws:
java.lang.IllegalStateException
- See Also:
start()
-
isRunning
public boolean isRunning()
Return whether the stop watch is currently running.
-
lastTaskTime
public TimeValue lastTaskTime() throws java.lang.IllegalStateException
Return the time taken by the last task.- Throws:
java.lang.IllegalStateException
-
lastTaskName
public java.lang.String lastTaskName() throws java.lang.IllegalStateException
Return the name of the last task.- Throws:
java.lang.IllegalStateException
-
totalTime
public TimeValue totalTime()
Return the total time for all tasks.
-
taskCount
public int taskCount()
Return the number of tasks timed.
-
taskInfo
public StopWatch.TaskInfo[] taskInfo()
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, callgetTaskInfo()
and use the task info directly.- Overrides:
toString
in classjava.lang.Object
-
-