[Kotlin] 코드 실행 시간 측정

코틀린에서는 어떤 블록 기능을 수행하는데 소요된 시간을 측정하는 몇가지 간단한 함수를 제공하고 있다.

measureTimeMillis(block: () → Unit): Long

val elapsed: Long = measureTimeMillis { Thread.sleep(100) }
println(elapsed)

measureNanoTime(block: () → Unit): Long

val elapsed: Long = measureNanoTime { Thread.sleep(100) }
println(elapsed)

위의 두 함수는 block 내에서 리턴된 값을 얻어오기가 불편하다는 단점이 있다.

measureTimedValue(block: () → T): TimedValue

val timedValue: TimedValue<User> = measureTimedValue { service.getUser() }
val duration: Duration = timedValue.duration
val user: User = timedValue.value

measureTime(block: () → Unit): Duration