2017-05-21 12 views
2

機能を実行する必要があるかどうかチェックする必要があります。Kotlinの機能の性能をテストする機能を果たすための時間を得るにはどうすればいいですか

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") 
     } 

AnimalBeastが列挙されている:私は、同じタスクに取り組む以下の機能を持っています。各機能の実行時間はどのように測定できますか?

+0

パフォーマンスのわずかな向上として、https://docs.oracle.com/javase/7/docs/api/java/util/EnumSet.htmlを試すことができます。 –

答えて

5

あなたは、コードのソリューションを探しているなら、あなたはこのように、measureTimeMillismeasureNanoTimeを使用することができます。

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

彼らはそれぞれ、ミリ秒とナノ秒単位で測定された時間を返します。

+4

このメソッドは、次のような異なる結果を返す可能性があります。実行するために実行します。意味のある性能比較のために、JMH – voddan

関連する問題