diff options
Diffstat (limited to 'app/src/main')
-rw-r--r-- | app/src/main/java/app/passwordstore/util/Perf.kt | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/app/src/main/java/app/passwordstore/util/Perf.kt b/app/src/main/java/app/passwordstore/util/Perf.kt index 8b3769e9..c56410f9 100644 --- a/app/src/main/java/app/passwordstore/util/Perf.kt +++ b/app/src/main/java/app/passwordstore/util/Perf.kt @@ -4,26 +4,19 @@ package app.passwordstore.util import android.os.Looper -import android.os.SystemClock +import kotlin.time.ExperimentalTime +import kotlin.time.measureTime import logcat.logcat /** * Small helper to execute a given [block] and log the time it took to execute it. Intended for use * in day-to-day perf investigations and code using it should probably not be shipped. */ -suspend fun <T> logExecutionTime(tag: String, block: suspend () -> T): T { - val start = SystemClock.uptimeMillis() - val res = block() - val end = SystemClock.uptimeMillis() - logcat(tag) { "Finished in ${end - start}ms" } - return res -} - -fun <T> logExecutionTimeBlocking(tag: String, block: () -> T): T { - val start = SystemClock.uptimeMillis() - val res = block() - val end = SystemClock.uptimeMillis() - logcat(tag) { "Finished in ${end - start}ms" } +@OptIn(ExperimentalTime::class) +inline fun <T> logExecutionTime(tag: String, crossinline block: () -> T): T { + val res: T + val duration = measureTime { res = block() } + logcat(tag) { "Finished in ${duration.inWholeMilliseconds}ms" } return res } |