From eb5e9bdffa5db7e74beab5b8148ea97a6d2dbf30 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Sun, 9 Oct 2022 20:05:40 +0530 Subject: refactor(app): switch `logExecutionTime` to `kotlin.time.measureTime` --- app/src/main/java/app/passwordstore/util/Perf.kt | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) (limited to 'app') 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 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 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 logExecutionTime(tag: String, crossinline block: () -> T): T { + val res: T + val duration = measureTime { res = block() } + logcat(tag) { "Finished in ${duration.inWholeMilliseconds}ms" } return res } -- cgit v1.2.3