measure Timed Value
Начиная с Kotlin: 1.9
inline fun <T> measureTimedValue(block: () -> T): TimedValue<T>
Выполняет заданную функцию блок и возвращает экземпляр класса TimedValue, содержащий результат выполнения функции и длительность прошедшего интервала времени.
Прошедшее время измеряется с помощью TimeSource.Monotonic — самого точного из доступных на платформе источников времени.
Примеры
import kotlin.test.Test
import kotlin.time.Duration.Companion.seconds
import kotlin.time.*
fun main() {
//sampleStart
fun slowFunction(): Unit = Thread.sleep(1000L)
val result = measureTimedValue {
slowFunction()
42
}
println("Computed result: ${result.value}, time elapsed: ${result.duration}")
//sampleEnd
}
inline fun <T> TimeSource.measureTimedValue(block: () -> T): TimedValue<T>
Выполняет заданную функцию блок и возвращает экземпляр класса TimedValue, содержащий результат выполнения функции и длительность прошедшего интервала времени.
Прошедшее время измеряется с помощью указанного экземпляра this TimeSource.
Примеры
import kotlin.test.Test
import kotlin.time.Duration.Companion.seconds
import kotlin.time.*
fun main() {
//sampleStart
val testSource = TestTimeSource()
val result = testSource.measureTimedValue {
println("Pretending this function executes 10 seconds")
testSource += 10.seconds
42
}
println("Computed result: ${result.value}, time elapsed: ${result.duration}")
//sampleEnd
}
inline fun <T> TimeSource.Monotonic.measureTimedValue(block: () -> T): TimedValue<T>
Выполняет заданную функцию блок и возвращает экземпляр класса TimedValue, содержащий результат выполнения функции и длительность прошедшего интервала времени.
Прошедшее время измеряется с помощью указанного экземпляра this TimeSource.Monotonic. Явное указание экземпляра позволяет использовать неупакованную версию TimeSource.Monotonic.ValueTimeMark и, при необходимости, яснее обозначить намерение.
Примеры
import kotlin.test.Test
import kotlin.time.Duration.Companion.seconds
import kotlin.time.*
fun main() {
//sampleStart
fun slowFunction(): Unit = Thread.sleep(1000L)
val result = TimeSource.Monotonic.measureTimedValue() {
slowFunction()
42
}
println("Computed result: ${result.value}, time elapsed: ${result.duration}")
//sampleEnd
}
© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.time/measure-timed-value.html