[Kotlin] 코드 실행 시간 측정
코틀린에서는 어떤 블록 기능을 수행하는데 소요된 시간을 측정하는 몇가지 간단한 함수를 제공하고 있다.
measureTimeMillis(block: () → Unit): Long
- Java에서의 System.currentTimeMillis() 를 사용하여 block 을 실행하는데 소요된 시간을 Long 형식으로 반환 한다.
val elapsed: Long = measureTimeMillis { Thread.sleep(100) }
println(elapsed)
measureNanoTime(block: () → Unit): Long
- Java 에서의 System.nanoTime() 을 사용하여 block 을 실행하는데 소요된 시간을 Long 형식으로 반환한다.
val elapsed: Long = measureNanoTime { Thread.sleep(100) }
println(elapsed)
위의 두 함수는 block 내에서 리턴된 값을 얻어오기가 불편하다는 단점이 있다.
measureTimedValue(block: () → T): TimedValue
- kotlin 1.3 에서 실험적(experimental) 로 추가된 함수다.
- TimeValue 자료형을 리턴한다.
- duration: 걸린 시간
- value: 반환된 값
val timedValue: TimedValue<User> = measureTimedValue { service.getUser() }
val duration: Duration = timedValue.duration
val user: User = timedValue.value
measureTime(block: () → Unit): Duration