SubwayTooter-Android-App/app/src/main/java/jp/juggler/util/Benchmark.kt

21 lines
556 B
Kotlin
Raw Normal View History

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
}