org.elasticsearch.common.util.concurrent
Class ThreadBarrier.BarrierTimer

java.lang.Object
  extended by org.elasticsearch.common.util.concurrent.ThreadBarrier.BarrierTimer
All Implemented Interfaces:
Runnable
Enclosing class:
ThreadBarrier

public static class ThreadBarrier.BarrierTimer
extends Object
implements Runnable

A Barrier action to be used in conjunction with ThreadBarrier to measure performance between barrier awaits. This runnable will execute when the barrier is tripped. Make sure to reset() the timer before next Measurement.

See Also:

Usage example:


                                                                                             BarrierTimer timer = new BarrierTimer();
                                                                                             ThreadBarrier barrier = new ThreadBarrier( nTHREADS + 1, timer );
                                                                                             ..
                                                                                             barrier.await(); // starts timer when all threads trip on await
                                                                                             barrier.await(); // stops  timer when all threads trip on await
                                                                                             ..
                                                                                             long time = timer.getTimeInNanos();
                                                                                             long tpi = time / ((long)nREPEATS * nTHREADS); //throughput per thread iteration
                                                                                             long secs = timer.getTimeInSeconds();	//total runtime in seconds
                                                                                             ..
                                                                                             timer.reset();  // reuse timer
                                                                                           

Constructor Summary
ThreadBarrier.BarrierTimer()
           
 
Method Summary
 long getTimeInNanos()
          Returns the elapsed time between two successive barrier executions.
 double getTimeInSeconds()
          Returns the elapsed time between two successive barrier executions.
 void reset()
          resets (clears) this timer before next execution.
 void run()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ThreadBarrier.BarrierTimer

public ThreadBarrier.BarrierTimer()
Method Detail

run

public void run()
Specified by:
run in interface Runnable

reset

public void reset()
resets (clears) this timer before next execution.


getTimeInNanos

public long getTimeInNanos()
Returns the elapsed time between two successive barrier executions.

Returns:
elapsed time in nanoseconds.

getTimeInSeconds

public double getTimeInSeconds()
Returns the elapsed time between two successive barrier executions.

Returns:
elapsed time in seconds.


Copyright © 2009-2012. All Rights Reserved.