Kotlin 开发 - Kotlin 测量代码执行时间(measureTimeMillis、measureTime、measureNanoTime、measureTimedValue)
·
Kotlin 测量代码执行时间
1、measureTimeMillis 函数
(1)基本介绍
fun measureTimeMillis(block: () -> Unit): Long
- measureTimeMillis 函数用于测量代码执行时间,返回毫秒值
(2)演示
suspend fun runTask1() {
println("任务 1 开始执行")
delay(1000)
println("任务 1 执行完成")
}
suspend fun runTask2() {
println("任务 2 开始执行")
delay(2 * 1000)
println("任务 2 执行完成")
}
val time = measureTimeMillis {
runBlocking {
runTask1()
runTask2()
}
}
println("执行耗时: $time 毫秒")
# 输出结果
任务 1 开始执行
任务 1 执行完成
任务 2 开始执行
任务 2 执行完成
执行耗时: 3050 毫秒
2、measureTime 函数
(1)基本介绍
fun measureTime(block: () -> Unit): Duration
- measureTime 函数:测量代码执行时间,返回 Duration 对象,Duration 对象功能丰富
(2)演示
suspend fun runTask1() {
println("任务 1 开始执行")
delay(1000)
println("任务 1 执行完成")
}
suspend fun runTask2() {
println("任务 2 开始执行")
delay(2 * 1000)
println("任务 2 执行完成")
}
val time = measureTime {
runBlocking {
runTask1()
runTask2()
}
}
println("执行耗时: $time")
# 输出结果
任务 1 开始执行
任务 1 执行完成
任务 2 开始执行
任务 2 执行完成
执行耗时: 3.053713400s
3、measureNanoTime 函数
(1)基本介绍
fun measureNanoTime(block: () -> Unit): Long
- measureNanoTime 函数用于测量代码执行时间,纳秒精度
(2)演示
suspend fun runTask1() {
println("任务 1 开始执行")
delay(1000)
println("任务 1 执行完成")
}
suspend fun runTask2() {
println("任务 2 开始执行")
delay(2 * 1000)
println("任务 2 执行完成")
}
val time = measureNanoTime {
runBlocking {
runTask1()
runTask2()
}
}
println("执行耗时: $time 纳秒")
# 输出结果
任务 1 开始执行
任务 1 执行完成
任务 2 开始执行
任务 2 执行完成
执行耗时: 3050623700 纳秒
4、measureTimedValue 函数
(1)基本介绍
fun <T> measureTimedValue(block: () -> T): TimedValue<T>
class TimedValue<T>(val value: T, val duration: Duration)
- measureTimedValue 函数用于测量代码执行时间,同时返回执行结果和耗时,耗时为 Duration 对象
(2)演示
val (result, time) = measureTimedValue {
println("任务开始执行")
Thread.sleep(3 * 1000)
println("任务执行完成")
100
}
println("任务结果: $result")
println("执行耗时: $time")
# 输出结果
任务开始执行
任务执行完成
任务结果: 100
执行耗时: 3.007100500s
更多推荐

所有评论(0)