Scala-Measure and Display the Method Running Time

Measure scala/java method executing time.

Scala

  • Measure Time Method:
1
2
3
4
5
6
7
8
9
def time[R](block: => R): R = {
val t0 = System.currentTimeMillis()
val result = block // call-by-name
val t1 = System.currentTimeMillis()
println("========================================")
println("Elapsed time: " + (t1 - t0) + "ms")
println("========================================")
result
}
  • Usage:
1
2
3
time{
//Some codes here
}

Java

  • Measure Time Method:
    In java, you must use System.nanoTime(). You cannot use System.currentTimeMillis(), unless you don’t mind your result being wrong.The purpose of nanoTime is to measure elapsed time, and the purpose of currentTimeMillis is to measure wall-clock time.
1
2
3
4
5
6
7
long startTime = System.nanoTime();    
// ... the code being measured ...
long endTime = System.nanoTime();
long estimatedTime = endTime - startTime;

// to convert nanoseconds to seconds just divide by 1,000,000,000
double estimatedSeconds = (double)elapsedTime / 1000000000.0;