I need to check how long does a function need to run. I have the following functions which address the same task:

mixAnimalsA

fun mixAnimalsA(a1: Animal, a2: Animal) =
        when (setOf(a1, a2)) {
            setOf(Animal.OWL, Animal.Leopard) -> Beast.OWLPARD
            setOf(Animal.ELEPHANT, Animal.BUTTERFLY) -> Beast.BUTTERPHANT
            else -> throw Exception("Not possible combination")
        }

mixAnimalsB

fun mixAnimalsB(a1: Animal, a2: Animal) =
        when (setOf(a1, a2)) {
            (c1 == Animal.OWL && c2 == Animal.Leopard) ||
                    (c2 == Animal.OWL && c1 == Animal.Leopard) -> Beast.OWLPARD
            (c1 == Animal.ELEPHANT && c2 == Animal.BUTTERFLY) ||
                    (c2 == Animal.ELEPHANT && c1 == Animal.BUTTERFLY)-> Beast.BUTTERPHANT
            else -> throw Exception("Not possible combination")
        }

Animal and Beast are enumerations. How can I measure how long each function takes to run?

推荐答案

If you're looking for an in-code solution, you can use measureTimeMillis and measureNanoTime, like this:

val time = measureTimeMillis {
    // call your function here
}

它们分别以毫秒和纳秒为单位返回测量的时间.

Kotlin相关问答推荐

Kotlin协程挂起继续线程

Kotlin 协程:flatMapLatest 什么都不发出

使用 Jetpack Compose 使用参数导航

mutableStateOf 和 mutableStateListOf 有什么区别?

Kotlin:调用 CoroutineScope.launch 与在协程内启动之间的区别

区分函数和扩展

如何处理基于枚举提前返回的 forEach 循环,Kotlin 中的一条路径除外

如何将 `throw` 放置在辅助函数中但仍然具有空安全性?

从带有 Room 和 Flows 的 SQLite 表中获取祖先树

OnClickListener 未在 ConstraintLayout 上触发

`this@classname` 在 Kotlin 中是什么意思?

模拟异常 - 没有找到答案

androidx.core:core-ktx:1.0.0 小部件包丢失

从命令行运行Java到Kotlin转换器?

Kotlin中OnclickListener方法之间的差异

Kotlin - 具有私有构造函数的类的工厂函数

使用 kotlin 每 3 位数添加逗号或点

Kotlin - 如何获取注释属性值

Android room DAO 接口不适用于继承

Android Jetpack Compose - 图像无法zoom 到框的宽度和高度