Как я могу получить время, необходимое для проверки производительности функций в Котлине

Мне нужно проверить, как долго должна выполняться функция. У меня есть следующие функции, которые направлены на одну и ту же задачу:

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 и Beast – это перечисления. Как я могу определить, как долго каждая функция выполняется?

    Если вы ищете встроенное решение, вы можете использовать measureTimeMillis и measureNanoTime , например:

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

    Они возвращают измеренное время в миллисекундах и наносекундах, соответственно.