Class MonitoredRunnable
- java.lang.Object
-
- net.obvj.performetrics.TimingSessionContainer
-
- net.obvj.performetrics.monitors.MonitoredRunnable
-
- All Implemented Interfaces:
Runnable
public class MonitoredRunnable extends TimingSessionContainer implements Runnable
A
Runnablewrapper that maintains one or more counters for monitoring the time spent by the Runnable'srun()method.Specify a target
Runnablevia constructor, then execute therun()method available in this wrapper. The targetRunnable'srun()method will be executed and monitored.After the operation, call
printSummary()orprintDetails()to print the elapsed times orelapsedTime(Counter.Type), to retrieve the elapsed time duration for a particular counter. E.g.:Duration cpuTime = monitoredRunnable.elapsedTime(Counter.Type.CPU_TIME);
By default, all available counter types will be measured, if no specific counter types are passed to the constructor. If required, an additional constructor may be used to set up one or more specific counters to be maintained. E.g.:
new MonitoredRunnable(runnable); // maintains all available counter types new MonitoredRunnable(runnable, Counter.Type.WALL_CLOCK_TIME); // wall-clock time only
For a list of available counters, refer to
Counter.Type.Note: This class is not thread-safe. In a multi-thread context, different instances must be created for each thread.
- Author:
- oswaldo.bapvic.jr
- See Also:
Counter,Counter.Type
-
-
Constructor Summary
Constructors Constructor Description MonitoredRunnable(Runnable runnable)Builds this monitored operation with a givenRunnable.MonitoredRunnable(Runnable runnable, Counter.Type... types)Builds this monitored operation with a givenRunnableand one or more specific counter types to be maintained.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidrun()-
Methods inherited from class net.obvj.performetrics.TimingSessionContainer
elapsedTime, elapsedTime, elapsedTime, elapsedTime, elapsedTime, elapsedTime, getAllCountersByType, getCounters, getTypes, lastSession, print, print, printDetails, printDetails, printSummary, printSummary, reset, toString, toString
-
-
-
-
Constructor Detail
-
MonitoredRunnable
public MonitoredRunnable(Runnable runnable)
Builds this monitored operation with a givenRunnable. All available counter types will be maintained.- Parameters:
runnable- theRunnableto be executed and profiled
-
MonitoredRunnable
public MonitoredRunnable(Runnable runnable, Counter.Type... types)
Builds this monitored operation with a givenRunnableand one or more specific counter types to be maintained.If no type is specified, then all of the available types will be maintained.
- Parameters:
runnable- theRunnableto be executed and profiledtypes- the counter types to be maintained with the operation
-
-