使用measureTimeMillis运行时

问题描述 投票:0回答:1

我正在尝试为简单的代码块比较不同的运行时,但是继续返回0。我该怎么做才能更好地估计执行时间?

private var trackConstantTime: Long? = null
this.trackConstantTime = measureTimeMillis {
 /* determine if a given number is even or odd */
 var n = (0..(Int.MAX_VALUE)).random()
 if(n % 2 == 0) "Even" else "Odd"
}
println("O(1), Constant Time for fxConstantTime(...):${TimeUnit.MILLISECONDS.toSeconds(trackConstantTime!!)}")

同样,如果我要附加另一个示例,该示例在运行时返回0。

private var trackLinearTime: Long? = null
private var uL: MutableList<Int> = mutableListOf()
for(i in 0..100){
 this.uL.add( ((0)..(100)).random() )
}
this.trackLinearTime = measureTimeMillis { 
 /* determine the maximum value in an unsorted array */
 var max: Int = 0
 for(i in 0 until uL.size) {
  if (uL[i] > max) max = uL[i]
  println(max)
 }
}
println("O(n), Linear Time for fxLinearTime(...):${TimeUnit.MILLISECONDS.toSeconds(trackLinearTime!!)}")
kotlin
1个回答
0
投票

也许尝试以纳秒为单位测量时间:

this.trackLinearTime = measureNanoTime {
    ...
}
© www.soinside.com 2019 - 2024. All rights reserved.