Scalaで処理時間を計測
Javaだとこんな感じ。
public static void main(String[] args) { long start = System.currentTimeMillis() // 重い処理 doHeavyProcess() System.out.println((System.currentTimeMillis() - start) + "msec") }
ScalaはJavaのAPIが使えるので、ほぼ同じコードで実現できるのだけれど、
このパターンを関数にしてみました。
def main(args:Array[String]) { printExecutionTime { // 重い処理 doHeavyProcess() } } /** 引数の処理の実行時間を表示 */ def printExecutionTime(proc: => Unit) = { val start = System.currentTimeMillis proc println((System.currentTimeMillis - start) + "msec") }