2021-06-24 06:49:27 +02:00
|
|
|
package jp.juggler.util
|
|
|
|
|
|
|
|
import jp.juggler.subwaytooter.BuildConfig
|
2021-06-23 06:14:25 +02:00
|
|
|
|
|
|
|
import android.os.SystemClock
|
|
|
|
|
2021-06-24 06:49:27 +02:00
|
|
|
private val log = LogCategory("Benchmark")
|
|
|
|
|
2021-06-23 06:14:25 +02:00
|
|
|
val benchmarkLimitDefault = if (BuildConfig.DEBUG) 10L else 100L
|
|
|
|
fun <T : Any?> benchmark(
|
|
|
|
caption: String,
|
|
|
|
limit: Long = benchmarkLimitDefault,
|
|
|
|
block: () -> T,
|
|
|
|
): T {
|
|
|
|
val start = SystemClock.elapsedRealtime()
|
|
|
|
val rv = block()
|
|
|
|
val duration = SystemClock.elapsedRealtime() - start
|
2021-06-24 06:49:27 +02:00
|
|
|
if (duration >= limit) log.w("benchmark: ${duration}ms : $caption")
|
2021-06-23 06:14:25 +02:00
|
|
|
return rv
|
|
|
|
}
|