mimir-pip/lib/src/org/mimirdb/pip/lib/Time.scala

22 lines
445 B
Scala

package org.mimirdb.pip.lib
object Time {
def apply[V](log: Double => Unit)(f: => V): V =
{
val start = System.nanoTime()
val ret = f
val end = System.nanoTime()
log( (end-start) / 1000000000.0 )
ret
}
def apply[V](label: String)(f: => V): V =
apply( t => println(s"[$label] $t s") )(f)
case class Timer(label: String)
{
var tot = 0.0
def apply[V](f: => V): V = Time.apply( tot += _ ){ f }
}
}