Elapsed time is the time or difference between a beginning time and an ending time. This example will show how to find the elapsed time between two dates using System.currentTimeMillis, System.nanoTime(), guava Stopwatch, apache commons stopwatch and spring framework’s stopwatch classes. Finding elapsed time is important to test method execution times and various other peformance related measures.
Straight up Java System.currentTimeMillis() @Test
public void calculate_elapsed_time_in_java ()
throws InterruptedException {
long startTime = System . currentTimeMillis ();
Thread . sleep ( 2 ); // simulate work
long estimatedTime = System . currentTimeMillis () - startTime ;
logger . info ( "time: " + estimatedTime );
assertTrue ( estimatedTime >= 0 );
}
System.nanoTime() @Test
public void calculate_elapsed_time_nano_in_java ()
throws InterruptedException {
long startTime = System . nanoTime ();
Thread . sleep ( 2 ); // simulate work
long estimatedTime = System . nanoTime () - startTime ;
logger . info ( "time: " + estimatedTime );
assertTrue ( estimatedTime >= 0 );
}
Google Guava @Test
public void calculate_elapsed_time_in_guava ()
throws InterruptedException {
Stopwatch stopwatch = Stopwatch . createStarted ();
Thread . sleep ( 2 ); // simulate work
stopwatch . stop (); // optional
long millis = stopwatch . elapsed ( TimeUnit . MILLISECONDS );
logger . info ( "time: " + stopwatch );
assertTrue ( millis >= 0 );
}
Apache Commons @Test
public void calculate_elapsed_time_in_apache_commons ()
throws InterruptedException {
StopWatch stopWatch = new StopWatch ();
stopWatch . start ();
Thread . sleep ( 2 ); // simulate work
stopWatch . stop ();
long millis = stopWatch . getNanoTime ();
logger . info ( "time: " + millis );
assertTrue ( millis >= 0 );
}
Spring Framework @Test
public void calculate_elapsed_time_in_spring () throws InterruptedException {
org . springframework . util . StopWatch stopWatch =
new org . springframework . util . StopWatch ();
stopWatch . start ( "step 1" );
Thread . sleep ( 2 ); // simulate work
stopWatch . stop ();
stopWatch . start ( "step 2" );
Thread . sleep ( 5 ); // simulate work
stopWatch . stop ();
stopWatch . start ( "step 3" );
Thread . sleep ( 3 ); // simulate work
stopWatch . stop ();
logger . info ( "time: " + stopWatch . prettyPrint ());
assertTrue ( stopWatch . getTotalTimeMillis () >= 0 );
}
Output
time: StopWatch '' : running time ( millis ) = 11
-----------------------------------------
ms % Task name
-----------------------------------------
00002 01 8 % step 1
00006 055 % step 2
00003 027 % step 3
Calculate elapsed time posted by Justin Musgrove on 23 April 2013
Tagged: java and java-date
Share on: Facebook Google+
All the code on this page is available on github:
MeasureElapsedTime.java