22 lines
445 B
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 }
|
|
}
|
|
}
|